Enrico Weigelt, metux IT consult
56aad1434b
mi: use CloseScreen hook
...
Wrapping ScreenRec's function pointers is problematic for many reasons,
so use the new screen close notify hook instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:45:32 +02:00
Enrico Weigelt, metux IT consult
479484b631
dix: add per-screen window position notify hook
...
Right now, extension specific actions on window positioning are 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
window positioning 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-12 16:44:33 +02:00
Enrico Weigelt, metux IT consult
66e1b34a88
xfree86: modeset: call miCreateScreenResources() directly
...
No need for complicated wrapping/unwrapping: it's always just
miCreateResources() anyway - so we can call it directly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:41:39 +02:00
Enrico Weigelt, metux IT consult
a1d1ee930d
mi: miwideline: fix uninitialized fields in miWideLine()
...
| ../mi/miwideline.c: In function ‘miRoundCapClip’:
| ../mi/miwideline.c:1404:15: warning: use of uninitialized value ‘*face.dy’ [CWE-457] [-Wanalyzer-use-of-uninitialized-value]
| 1404 | dx = -face->dy;
| | ~~~~^~~~
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:31:32 +02:00
Enrico Weigelt, metux IT consult
3b9ca877a4
mi: NULL-protect miFillGeneralPoly()
...
| In file included from ../mi/mipoly.c:59:
| ../mi/mipoly.c: In function ‘miFillGeneralPoly’:
| ../mi/mipoly.h:162:12: warning: dereference of NULL ‘pAET’ [CWE-476] [-Wanalyzer-null-dereference]
| 162 | if (pAET->ymax == y) { /* leaving this edge */ \
| ../mi/mipoly.c:591:17: note: in expansion of macro ‘EVALUATEEDGEEVENODD’
| 591 | EVALUATEEDGEEVENODD(pAET, pPrevAET, y);
| | ^~~~~~~~~~~~~~~~~~~
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:31:29 +02:00
Enrico Weigelt, metux IT consult
fccc98645b
mi: NULL-protection in ‘miInitVisuals()
...
NULL-Protect just against 'vid' might remain NULL.
| ../mi/micmap.c: In function ‘miInitVisuals’:
| ../mi/micmap.c:505:32: warning: dereference of NULL ‘vid’ [CWE-476] [-Wanalyzer-null-dereference]
| 505 | visual->vid = *vid = FakeClientID(0);
| | ~~~~~^~~~~~~~~~~~~~~~~
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:31:26 +02:00
Enrico Weigelt, metux IT consult
9d78e139a0
dix: unexport SetInputCheck() and make it inline
...
Not used by any drivers, so no need to keep it exported.
It's also so simple (and rarely called) that easily can be inlined.
Also unexport HWEventQueueType and HWEventQueuePtr, since they're
not used by any drivers.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:20:09 +02:00
Enrico Weigelt, metux IT consult
6dc7eab871
dix: rename IsFloating() to InputDevIsFloating()
...
Give it a better fitting name.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:19:40 +02:00
Enrico Weigelt, metux IT consult
4f2bd438cd
dix: rename IsMaster to InputDevIsMaster()
...
Give it a better fitting name.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:19:33 +02:00
Enrico Weigelt, metux IT consult
2b89942c7a
dix: unexport and document WindowsRestructured()
...
Not used by any external drivers, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:19:00 +02:00
Alan Coopersmith
7aa1f121e4
mi: use common implementation of bit counting function
...
Reduce a bit of unexplained magic, and use ISA extensions where available
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1984 >
2025-05-20 00:34:23 +00:00
Enrico Weigelt, metux IT consult
fe156104cf
Revert "mi: drop obsolete miInitOverlay()"
...
This reverts commit 12ab2e314b
.
Requested by Nvidia - their proprietary driver still needs it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1843 >
2025-02-27 11:53:54 +00:00
Enrico Weigelt, metux IT consult
41a75f01cc
Revert "mi: drop obsolete miOverlayGetPrivateClips()"
...
This reverts commit 2c21824ee9
.
Requested by Nvidia - their proprietary driver still needs it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1843 >
2025-02-27 11:53:54 +00:00
Enrico Weigelt, metux IT consult
ab95b569e1
Revert "mi: drop obsolete miOverlayCollectUnderlayRegions()"
...
This reverts commit a860ce2c9f
.
Requested by Nvidia - their proprietary driver still needs it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1843 >
2025-02-27 11:53:54 +00:00
Enrico Weigelt, metux IT consult
4cdc184c13
Revert "mi: drop obsolete miOverlayComputeCompositeClip()"
...
This reverts commit bfb69b7316
.
Requested by Nvidia - their proprietary driver still needs it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1843 >
2025-02-27 11:53:54 +00:00
Enrico Weigelt, metux IT consult
9d88cc5f11
Revert "mi: drop obsolete miOverlayCopyUnderlay()"
...
This reverts commit be6985948d
.
Requested by Nvidia - their proprietary driver still needs it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1843 >
2025-02-27 11:53:54 +00:00
Enrico Weigelt, metux IT consult
d4f92a5688
Revert "mi: drop obsolete miOverlaySetRootClip()"
...
This reverts commit 00796cbf8c
.
Requested by Nvidia - their proprietary driver still needs it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1843 >
2025-02-27 11:53:54 +00:00
Enrico Weigelt, metux IT consult
0463d7aaaa
Revert "mi: drop now obsolete mioverlay.c"
...
This reverts commit 65b738ed60
.
Requested by Nvidia - their proprietary driver still needs it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1843 >
2025-02-27 11:53:54 +00:00
Enrico Weigelt, metux IT consult
f1d87a38ae
Revert "mi: drop now obsolete mioverlay.h"
...
This reverts commit 6825f89cd2
.
Requested by Nvidia - their proprietary driver still needs it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1843 >
2025-02-27 11:53:54 +00:00
Enrico Weigelt, metux IT consult
00843efafb
Xext: drop disable flag for GE extension
...
There's really no practical use for disabling GEEext, would just
cause the Xserver misbehaviour (eg. missing byte swapping)
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1812 >
2025-02-26 13:34:19 +00:00
Peter Hutterer
68c17477d2
mi: guard miPointer functions against NULL dereferences
...
Already in place for some functions, let's add it to most others.
The only function missing is miPointerSetPosition() which needs to
return the ScreenPtr and that one is unclear if we don't have a screen -
returning NULL will crash the caller(s) so let's wait for something to
trigger this bug before we try to fix it wrongly.
Related to #1782
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1771 >
2025-02-26 04:17:03 +00:00
Peter Hutterer
acbdd0ecdd
mi: don't crash on miPointerGetPosition for disabled devices
...
If a device is disabled, its master device is forcibly reset to NULL but
unlike a floating device it doesn't have a sprite allocated. Calling
miPointerGetPosition for a disabled device thus crashes.
Avoid this by returning 0/0 for any device without a miPointer.
This is a quick fix only, a proper fix for this issue is rather more
involved.
Closes #1782
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1771 >
2025-02-26 04:17:02 +00:00
Enrico Weigelt, metux IT consult
346d5f5c35
os: move BUG_*() macros to own private header
...
These macros aren't used by any external modules, so no need
to keep them public. Moving them into private header.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1804 >
2025-02-17 19:32:48 +00:00
Enrico Weigelt, metux IT consult
6349773d5e
mi: (re)export and document miPointerInitialize()
...
Xrdp project request exporting this function again, because (unlike the
usual xf86-video-* drivers) they need their own custom cursor handling:
RDP is designed to draw cursors on client side.
Also documenting what the function does.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1787 >
2025-02-13 23:53:39 +00:00
Enrico Weigelt, metux IT consult
4628254698
mi: use dixDestroyPixmap() instead of direct driver call
...
Direct calls to ScreenRec->DestroyPixmap() blocks cleaning up the wrapping
jungle, so use the proper dix function instead.
See: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1754
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1711 >
2025-02-12 17:48:30 +01:00
Enrico Weigelt, metux IT consult
6ee163cb94
mi: miexpose: fix FTBS w/ rootless helper
...
FTBS when rootless subsys enabled:
> ../mi/miexpose.c: In function ‘miPaintWindow’:
> ../mi/miexpose.c:411:15: error: unused variable ‘orig_pWin’ [-Werror=unused-variable]
> 411 | WindowPtr orig_pWin = pWin;
> | ^~~~~~~~~
> cc1: all warnings being treated as errors
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1703 >
2025-02-08 15:15:57 +00:00
Enrico Weigelt, metux IT consult
2d18c353b4
os: log: replace ErrorFSigSafe() by ErrorF()
...
Since ErrorF() is now signal safe, we can use this one instead.
Leaving ErrorFSigSafe() macro for backwards compat with drivers.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1691 >
2025-02-06 23:35:27 +00:00
Enrico Weigelt, metux IT consult
e1e8ab3ddf
mi: miline.h: drop DEFAULTZEROLINEBIAS from public header
...
This define in only used locally, in exactly one source file,
thus no neeed to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1726 >
2025-02-06 22:18:12 +00:00
Enrico Weigelt, metux IT consult
c06d9da5b6
mi: miline.h: unexport only locally used macros
...
These macros are only used in one source file, so move them there.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1726 >
2025-02-06 22:18:11 +00:00
Enrico Weigelt, metux IT consult
6825f89cd2
mi: drop now obsolete mioverlay.h
...
This used to be part of public API, but no (known) driver ever
using it, nor any exported functions left. The only internal consumer
(mioverlay.c) also gone now, so it's time to drop this file.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1503 >
2025-02-06 21:00:08 +00:00
Enrico Weigelt, metux IT consult
65b738ed60
mi: drop now obsolete mioverlay.c
...
Since it became practically empty, we can remove it now.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1503 >
2025-02-06 21:00:08 +00:00
Enrico Weigelt, metux IT consult
00796cbf8c
mi: drop obsolete miOverlaySetRootClip()
...
Not used by any (known) drivers.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1503 >
2025-02-06 21:00:08 +00:00
Enrico Weigelt, metux IT consult
54704e4a50
mi: drop obsolete miOverlaySetTransFunction()
...
Not used by any (known) drivers.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1503 >
2025-02-06 21:00:08 +00:00
Enrico Weigelt, metux IT consult
be6985948d
mi: drop obsolete miOverlayCopyUnderlay()
...
Not used by any (known) drivers.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1503 >
2025-02-06 21:00:08 +00:00
Enrico Weigelt, metux IT consult
bfb69b7316
mi: drop obsolete miOverlayComputeCompositeClip()
...
Not used by any (known) drivers anymore.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1503 >
2025-02-06 21:00:08 +00:00
Enrico Weigelt, metux IT consult
a860ce2c9f
mi: drop obsolete miOverlayCollectUnderlayRegions()
...
Not used by any known drivers/modules.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1503 >
2025-02-06 21:00:08 +00:00
Enrico Weigelt, metux IT consult
2c21824ee9
mi: drop obsolete miOverlayGetPrivateClips()
...
It's not used anymore, not even by any (known) drivers.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1503 >
2025-02-06 21:00:08 +00:00
Enrico Weigelt, metux IT consult
12ab2e314b
mi: drop obsolete miInitOverlay()
...
It doesn't seem to be used anywhere for quite some time.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1503 >
2025-02-06 21:00:08 +00:00
Enrico Weigelt, metux IT consult
d79432e0d4
Xnest: tidy up extension blacklisting in miinitext.c
...
The DDX'es sometimes need to disable certain extensions. Instead of complex
include cascades with ifdef'ed ddx-specific include from dix code, it's
more clean to add some clear and explicit knobs set by the DDX'es individual
meson.build.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1401 >
2025-02-06 16:14:03 +00:00
Enrico Weigelt, metux IT consult
fb696a7d7b
rename old symbol PANORAMIX to XINERAMA
...
PANORAMIX was the original working title of the extension, before it became
official standard. Just nobody cared about fixing the symbols to the official
naming.
For backwards compatibility with drivers, the old PANORAMIX symbol will
still be set.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1258 >
2025-02-06 15:51:27 +00:00
Enrico Weigelt, metux IT consult
aae9bd3f62
mi: unexport SetInstalledmiColormap() macro
...
Not neeed by any drivers/modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00
Enrico Weigelt, metux IT consult
c3c538784a
mi: unexport miExpandDirectColors()
...
Not used by any drivers/modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00
Enrico Weigelt, metux IT consult
3cf2408232
mi: unexport miXYToWindow()
...
Not used by any drivers/modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00
Enrico Weigelt, metux IT consult
85be6c82b0
mi: unexport miSpriteTrace()
...
Not used by any drivers/modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00
Enrico Weigelt, metux IT consult
6c3b432053
mi: unexport miMarkUnrealizedWindow()
...
Not used by any drivers/modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00
Enrico Weigelt, metux IT consult
b23ecec2f4
mi: unexport miChangeBorderWidth()
...
Not used by any driveres/modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00
Enrico Weigelt, metux IT consult
597ba690d3
mi: unexport miSetShape()
...
Not used by any drivers/modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00
Enrico Weigelt, metux IT consult
f11e203215
mi: unexport miGetLayerWindow()
...
Not used by any drivers/modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00
Enrico Weigelt, metux IT consult
14565a4561
mi: unexport miResizeWindow()
...
Not used by any drivers/modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00
Enrico Weigelt, metux IT consult
faad8ed1c6
mi: unexport miMoveWindow()
...
Not used by any drivers/modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1727 >
2025-02-06 16:45:20 +02:00