xserver/include
Enrico Weigelt, metux IT consult 3191eb529e (!1714) dix: add per-screen window destructor hook
Right now, extension specific window destruction procedures are implemented
by wrapping the ScreenRec's DestroyWindow() proc pointer: the extensions are
storing the original pointer in their private data and putting in their own one.
On each call, their proc restores the original one, calls it, and switches back
again. When multiple extensions doing so, they're forming a kind of daisy chain.
(the same is done for lots of other procs)

While that approach is looking nice and elegant on the drawing board, it's
complicated, dangerous like a chainsaw and makes debugging hard, leading to
pretty blurred API borders.

This commit introduces a simple approach for letting extension hook into the
window destruction safely, w/o having to care much about side effects with
the call chain. Extensions now can simply register their destructor proc
(and an opaque pointer) and get called back - w/o ever having to mess with
the ScreenRec's internal structures.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-31 19:23:51 +01:00
..
.gitignore Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
Xprintf.h Remove "All rights reserved" from Oracle copyright notices 2023-02-25 09:40:41 -08:00
Xserver.d Remove "All rights reserved" from Oracle copyright notices 2023-02-25 09:40:41 -08:00
callback.h dix: unexport callback manager init / teardown functions 2024-03-12 15:18:17 +00:00
client.h os: unexport client id retrieval functions 2024-10-10 13:45:29 +00:00
closure.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
colormap.h dix: move colormap flags into colormap_priv.h and rename them 2024-09-01 22:06:50 +00:00
colormapst.h dix: move colormap flags into colormap_priv.h and rename them 2024-09-01 22:06:50 +00:00
cursor.h dix: drop superfluous XineramaGetCursorScreen() 2024-09-02 16:43:29 +00:00
cursorstr.h cursor: drop ARGB_CURSOR 2015-06-30 12:17:51 +10:00
displaymode.h hw/xfree86: re-calculate the clock and refresh rate 2023-12-22 05:02:05 +00:00
dix-config-apple-verbatim.h Move the apple fat binary hacks back to a header file, and make it apple-only. 2009-01-30 16:36:45 -08:00
dix.h (!1711) dix: add in-code docs for dixDestroyPixmap() 2024-10-31 19:23:50 +01:00
dix_screen_hooks.h (!1714) dix: add per-screen window destructor hook 2024-10-31 19:23:51 +01:00
dixaccess.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
dixevents.h dix: Remove redundant declarations. 2012-05-14 13:31:00 +01:00
dixfont.h include: drop unused including of closure.h 2024-03-03 22:42:41 +00:00
dixfontstr.h include: dixfontstr.h: drop silent dependency on libxfont2 2024-09-01 17:45:13 +00:00
dixstruct.h os: split off internal definitions from client.h 2024-10-10 13:45:29 +00:00
events.h xi: Implement internal gesture event struct 2021-05-30 13:26:31 +03:00
eventstr.h mi: reset the PointerWindows reference on screen switch 2023-10-25 00:37:47 +00:00
exevents.h include: move private definitions out of exevents.h 2024-04-30 00:47:38 +00:00
extension.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
extinit.h include: move private definitions out of extinit.h 2024-04-30 00:47:38 +00:00
extinit_priv.h include: move private definitions out of extinit.h 2024-04-30 00:47:38 +00:00
extnsionst.h dix: Remove extension aliases 2017-06-20 16:37:24 -04:00
fourcc.h glamor: xv: add rgb565 2023-11-29 21:18:29 +00:00
gc.h dix: unexport SetClipRects() 2024-04-15 23:10:31 +00:00
gcstruct.h fb: Remove 24bpp support (v3) 2017-03-17 15:14:42 -04:00
globals.h include: unpexport SELINUX_* consts from include/global.h 2024-03-25 19:40:04 +00:00
glx_extinit.h miinitext: Load GLX on the mi path 2018-02-14 17:04:48 -05:00
glxvndabi.h Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
hotplug.h config: Replace OdevAttributes linked list with struct 2014-07-17 17:10:48 -07:00
input.h include: move private definitions out of input.h 2024-09-01 17:59:23 +00:00
inputstr.h input: Add new hook DeviceSendEventsProc for XTEST 2023-06-26 13:19:19 +02:00
inpututils.h Implement gesture processing logic 2021-05-30 13:26:42 +03:00
list.h include: drop obsolete check for typeof operator 2024-04-22 22:15:45 +00:00
meson.build (!1714) dix: add per-screen window destructor hook 2024-10-31 19:23:51 +01:00
misc.h dix: unexport Ones() 2024-10-26 16:35:57 +00:00
miscstruct.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
nonsdk_extinit.h include: move private definitions out of extinit.h 2024-04-30 00:47:38 +00:00
opaque.h os: unexport fields from opaque.h not used by modules / drivers 2024-06-23 21:19:27 +00:00
optionstr.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
os.h os: replace LogVWrite() by LogVMessageVerb() 2024-10-10 17:34:12 +00:00
pixmap.h dix: Remove pScratchPixmap and other associated ABI changes 2022-12-30 01:32:25 +00:00
pixmapstr.h rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2023-01-20 17:10:54 +00:00
privates.h Fix compilation with windows.h from latest w32api 2021-08-31 16:56:28 +00:00
probes.h Remove "All rights reserved" from Oracle copyright notices 2023-02-25 09:40:41 -08:00
property.h dix: unexport DeleteAllWindowProperties() 2024-09-02 17:50:47 +00:00
propertyst.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
protocol-versions.h Present: add PresentCapabilitySyncobj and PresentPixmapSynced 2024-04-09 06:11:03 +00:00
ptrveloc.h dix: unexport SetAccelerationProfile() 2024-03-09 18:01:52 +00:00
region.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
regionstr.h dix: make RegionInit legal C++ 2015-01-23 10:35:49 -08:00
resource.h rename remaining RT_* defines to X11_RESTYPE_* 2024-04-15 19:00:47 -07:00
rgb.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
screenint.h Revert "dix: unexport AttachOutputGPU() and DetachOutputGPU()" 2024-09-01 20:38:01 +00:00
scrnintstr.h (!1714) dix: add per-screen window destructor hook 2024-10-31 19:23:51 +01:00
selection.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
servermd.h dix: Fix image byte order on big endian hardware 2015-05-07 14:03:50 -04:00
swaprep.h dix: Unexport various implementation details 2015-07-08 16:40:57 -04:00
swapreq.h swapreq.h: drop SWAPREQ_PROC 2024-10-10 16:10:32 +00:00
systemd-logind.h xf86/logind: Fix compilation error when built without logind/platform bus 2021-12-20 16:56:14 +01:00
validate.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
vidmodestr.h vidmode: build without xf86vidmodeproto 2016-03-01 11:25:59 -05:00
window.h dix: Add hybrid full-size/empty-clip mode to SetRootClip 2016-02-22 13:26:31 -05:00
windowstr.h dix: Remove WindowRec::backStorage 2019-04-12 21:53:03 +00:00
xkb-config.h.in Move to autoconf standard function name checks & defines 2011-12-05 14:32:45 -08:00
xkbfile.h xkb: unexport Xkb* defines used by xkbtext.c 2024-05-14 03:57:45 +00:00
xkbrules.h xkb: add a call to init an XkbRMLVOSet from const chars 2014-02-04 10:53:59 +10:00
xkbsrv.h kbd: move _XkbWantsDetectableAutoRepeat() macro into dix/events.c 2024-06-18 02:10:04 +00:00
xkbstr.h include: xkbstr.h: fix missing include of Xdefs.h 2024-04-09 06:50:20 +00:00
xorg-config.h.meson.in xf86AutoConfig: try modesetting on all platforms we build it on 2022-09-20 18:26:03 +00:00
xorg-server.h.meson.in (!1714) dix: add per-screen window destructor hook 2024-10-31 19:23:51 +01:00
xserver-properties.h Add missing labels for multitouch valuators 2012-10-30 15:11:10 +10:00
xwayland-config.h.meson.in xwayland/glamor: Drop the EGLStream backend 2024-03-18 15:41:17 +00:00
xwin-config.h.meson.in xwin: consolidate debugging symbols 2024-03-19 02:05:35 +00:00