xserver/hw/xfree86/common
Enrico Weigelt, metux IT consult e615668020 (!1714) dix: add per-screen close notify hook
Right now, extension specific actions on screen closing implemented by wrapping
the ScreenRec's PositionWindow() 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
screen closing path safely, w/o having to care much about side effects with
the call chain. Extensions now can simply register their hook proc (and an
opaque pointer) and get called back - w/o ever having to mess with the
ScreenRec's internal structures. These hooks are called before the original
vector (usually handled by DDX/screen driver directly) is called.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-03 11:37:32 +02:00
..
.gitignore Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
compiler.h compiler.h: drop translation of Sun compiler platform defines to gcc 2024-07-28 23:26:37 +00:00
dgaproc.h xfree86: common: move non-exported funcs from dgaproc.h to separate header 2024-02-29 10:27:08 +00:00
dgaproc_priv.h xfree86: common: move non-exported funcs from dgaproc.h to separate header 2024-02-29 10:27:08 +00:00
extramodes xfree86: add default modes for 16:9 and 16:10 2018-01-18 14:16:35 -05:00
meson.build (!1988) xfree86: drop xf86VGAarbiter.h 2025-06-03 11:37:30 +02:00
modeline2c.awk xfree86: make modeline2c.awk put a newline at the end of xf86DefModeSet.c 2025-04-19 17:02:15 +00:00
vesamodes
xaarop.h xfree86: Drop some dead XAA decls from SDK headers 2012-07-25 14:03:31 -07:00
xf86.h (!1982) xfree86: xf86.h: dont include propertyst.h 2025-06-03 11:37:31 +02:00
xf86AutoConfig.c xfree86: common: use LogMessageVerb() instead of xf86Msg() 2025-02-07 22:40:06 +00:00
xf86Bus.c xfree86: common: use LogMessageVerb() instead of xf86Msg() 2025-02-07 22:40:06 +00:00
xf86Bus.h xfree86: Remove vestigial lastScrnFlag 2018-09-12 20:47:15 +00:00
xf86Config.c xfree86: common: use LogMessageVerb() instead of xf86Msg() 2025-02-07 22:40:06 +00:00
xf86Config.h xfree86: unexport xf86SetVerbosity() and xf86SetLogVerbosity() 2024-10-10 18:25:54 +00:00
xf86Configure.c (!1969) xfree86: common: extra safety checks for NULL pointers 2025-06-03 11:37:31 +02:00
xf86Cursor.c xfree86: common: use LogMessageVerb() instead of xf86Msg() 2025-02-07 22:40:06 +00:00
xf86DGA.c (!2007) dix: rename IsMaster to InputDevIsMaster() 2025-06-03 11:37:29 +02:00
xf86DPMS.c (!1991) xfree86: xf86Option: unexport xf86MarkOptionUsed() 2025-06-03 11:37:30 +02:00
xf86Events.c (!1969) xfree86: common: extra safety checks for NULL pointers 2025-06-03 11:37:31 +02:00
xf86Extensions.c (!1991) xfree86: xf86Option: unexport xf86MarkOptionUsed() 2025-06-03 11:37:30 +02:00
xf86Extensions.h xf86: Re-export extension disable flags 2012-07-16 18:24:49 -07:00
xf86Globals.c Revert "xfree86: Remove -flippixels" 2024-01-03 19:43:16 +00:00
xf86Helper.c (!1990) xfree86: make xf86VIDrvMsgVerb() static 2025-06-03 11:37:30 +02:00
xf86InPriv.h xfree86/common: Warning fixes. Mostly const string handling. 2014-01-12 10:14:48 -08:00
xf86Init.c (!1985) randr: unexport and document RRProviderAutoConfigGpuScreen() 2025-06-03 11:37:31 +02:00
xf86MatchDrivers.h xfree86: unexport xf86PlatformMatchDriver() 2025-02-07 00:38:58 +02:00
xf86Mode.c rename old symbol PANORAMIX to XINERAMA 2025-02-06 15:51:27 +00:00
xf86Module.h (!1988) xfree86: loader: drop unused MODULETEARDOWNPROTO() macro 2025-06-03 11:37:29 +02:00
xf86Module_priv.h xfree86: common: unexport UnloadModule() and UnloadSubModule() 2025-02-06 23:09:02 +00:00
xf86Opt.h (!1991) xfree86: xf86Option: unexport xf86MarkOptionUsedByName() 2025-06-03 11:37:30 +02:00
xf86Opt_priv.h (!1991) xfree86: xf86Option: unexport xf86MarkOptionUsedByName() 2025-06-03 11:37:30 +02:00
xf86Option.c (!1969) xfree86: common: gracefully handle allocation failure 2025-06-03 11:37:31 +02:00
xf86Optionstr.h hw/xfree86: Lots of constant string support 2014-01-12 10:14:48 -08:00
xf86PM.c xfree86: use LogMessageVerb() instead of xf86MsgVerb() 2025-02-07 22:40:06 +00:00
xf86PciInfo.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
xf86Priv.h (!1982) xfree86: xf86Priv.h: dont include propertyst.h 2025-06-03 11:37:31 +02:00
xf86Privstr.h Remove check for useSIGIO option 2020-12-08 11:23:31 -05:00
xf86RandR.c (!1967) dix: protect from pScreen->SetCursorPosition == NULL 2025-06-03 11:37:31 +02:00
xf86VGAarbiter.c (!1988) xfree86: drop obsolete xf86VGAarbiterDeviceDecodes() 2025-06-03 11:37:30 +02:00
xf86VGAarbiterPriv.h xfree86: Hold input_lock across SPRITE functions in VGA arbiter 2017-12-13 12:06:31 -05:00
xf86VGAarbiter_priv.h (!1988) xfree86: drop xf86VGAarbiter.h 2025-06-03 11:37:30 +02:00
xf86VidMode.c vidmode: remove redundant DIX function 2016-02-29 16:29:14 -05:00
xf86Xinput.c (!1990) xfree86: make xf86PostKeyEvent() static 2025-06-03 11:37:30 +02:00
xf86Xinput.h (!1990) xfree86: unexport xf86RemoveInputEventDrainCallback() 2025-06-03 11:37:30 +02:00
xf86Xinput_priv.h (!1990) xfree86: unexport xf86RemoveInputEventDrainCallback() 2025-06-03 11:37:30 +02:00
xf86cmap.c xfree86: modes: move private definitions out of from xf86RandR12.h 2025-02-06 23:51:33 +00:00
xf86cmap.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
xf86fbBus.c xfree86: unexport os-support functions 2024-04-18 00:40:39 +00:00
xf86fbman.c (!1997) xfree86: fbman: move FBManagerFuncs into x86fbman.c 2025-06-03 11:37:29 +02:00
xf86fbman.h (!1997) xfree86: fbman: move FBManagerFuncs into x86fbman.c 2025-06-03 11:37:29 +02:00
xf86noBus.c xfree86: unexport os-support functions 2024-04-18 00:40:39 +00:00
xf86pciBus.c xfree86: common: use LogMessageVerb() instead of xf86Msg() 2025-02-07 22:40:06 +00:00
xf86pciBus.h xfree86: Improved autoconfig drivers matching 2017-05-09 17:36:05 -07:00
xf86platformBus.c (!1714) dix: add per-screen close notify hook 2025-06-03 11:37:32 +02:00
xf86platformBus.h xfree86: unexport xf86PlatformMatchDriver() 2025-02-07 00:38:58 +02:00
xf86sbusBus.c xfree86: common: use LogMessageVerb() instead of xf86Msg() 2025-02-07 22:40:06 +00:00
xf86sbusBus.h xfree86: common: move private defs out of xf86sbusBus.h 2025-02-06 23:51:33 +00:00
xf86sbusBus_priv.h xfree86: common: move private defs out of xf86sbusBus.h 2025-02-06 23:51:33 +00:00
xf86str.h Extend Linux #ifdef to FreeBSD OS. 2023-10-22 16:08:21 +00:00
xf86xv.c (!1714) xfree86: xv: use window destructor hook 2025-06-03 11:37:32 +02:00
xf86xv.h (!1996) xfree86: xv: drop unused xf86XVFillKeyHelperPort() 2025-06-03 11:37:29 +02:00
xf86xvmc.c Revert "xv: unexport XvScreenRec and XvScreenPtr" 2025-02-07 10:08:41 +01:00
xf86xvmc.h Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
xf86xvpriv.h (!1714) xfree86: xv: use window destructor hook 2025-06-03 11:37:32 +02:00
xisb.c (!1995) xfree86: xisb: drop unused XisbTrace() 2025-06-03 11:37:29 +02:00
xisb.h (!1995) xfree86: xisb: drop unused XisbTrace() 2025-06-03 11:37:29 +02:00
xorgHelper.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
xorgVersion.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00