From 372ca9114c0545aa6ac88230a98ef20a60ee12f7 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Sun, 31 Aug 2025 12:24:29 -0700 Subject: [PATCH] Revert "dix: drop superfluous XineramaGetCursorScreen()" This reverts commit 6c7c4fdc7ee3e63f15caa4d2e1787d6fa747729f. Part-of: --- dix/events.c | 13 +++++++++++++ include/cursor.h | 6 ++++++ record/record.c | 3 +-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/dix/events.c b/dix/events.c index 4e64fa2b6..806664671 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1053,6 +1053,19 @@ GetSpritePosition(DeviceIntPtr pDev, int *px, int *py) *py = pSprite->hotPhys.y; } +#ifdef PANORAMIX +int +XineramaGetCursorScreen(DeviceIntPtr pDev) +{ + if (!noPanoramiXExtension) { + return pDev->spriteInfo->sprite->screen->myNum; + } + else { + return 0; + } +} +#endif /* PANORAMIX */ + #define TIMESLOP (5 * 60 * 1000) /* 5 minutes */ static void diff --git a/include/cursor.h b/include/cursor.h index 50796d047..7167f4707 100644 --- a/include/cursor.h +++ b/include/cursor.h @@ -57,6 +57,8 @@ SOFTWARE. /* Provide support for alpha composited cursors */ #define ARGB_CURSOR +struct _DeviceIntRec; + typedef struct _Cursor *CursorPtr; // FUN FACT: If you typedef a pointer type, like the `CursorPtr` above // then `const CursorPtr` or `CursorPtr const` actually means `struct _Cursor *const`, a constant pointer @@ -68,4 +70,8 @@ typedef struct _CursorMetric *CursorMetricPtr; extern _X_EXPORT int FreeCursor(void *pCurs, XID cid); +#ifdef PANORAMIX +extern _X_EXPORT int XineramaGetCursorScreen(struct _DeviceIntRec *pDev); +#endif /* PANORAMIX */ + #endif /* CURSOR_H */ diff --git a/record/record.c b/record/record.c index e8004a85f..c6ff5a27e 100644 --- a/record/record.c +++ b/record/record.c @@ -34,7 +34,6 @@ and Jim Haggerty of Metheus. #include -#include "dix/cursor_priv.h" #include "dix/eventconvert.h" #include "os/osdep.h" @@ -722,7 +721,7 @@ RecordSendProtocolEvents(RecordClientsAndProtocolPtr pRCAP, pev->u.u.type == ButtonPress || pev->u.u.type == ButtonRelease || pev->u.u.type == KeyPress || pev->u.u.type == KeyRelease)) { - int scr = inputInfo.pointer->spriteInfo->sprite->screen->myNum; + int scr = XineramaGetCursorScreen(inputInfo.pointer); memcpy(&shiftedEvent, pev, sizeof(xEvent)); shiftedEvent.u.keyButtonPointer.rootX +=