summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dix/events.c5
-rw-r--r--include/scrnintstr.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/dix/events.c b/dix/events.c
index 87f080e16..cc26ba5db 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -882,6 +882,8 @@ ConfineCursorToWindow(DeviceIntPtr pDev, WindowPtr pWin, Bool generateEvents,
SyntheticMotion(pDev, pSprite->hot.x, pSprite->hot.y);
}
else {
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+
#ifdef PANORAMIX
if (!noPanoramiXExtension) {
XineramaConfineCursorToWindow(pDev, pWin, generateEvents);
@@ -893,6 +895,9 @@ ConfineCursorToWindow(DeviceIntPtr pDev, WindowPtr pWin, Bool generateEvents,
: NullRegion;
CheckPhysLimits(pDev, pSprite->current, generateEvents,
confineToScreen, pWin->drawable.pScreen);
+
+ if (*pScreen->CursorConfinedTo)
+ (*pScreen->CursorConfinedTo) (pDev, pScreen, pWin);
}
}
diff --git a/include/scrnintstr.h b/include/scrnintstr.h
index faf9f8d41..f898392fe 100644
--- a/include/scrnintstr.h
+++ b/include/scrnintstr.h
@@ -241,6 +241,10 @@ typedef void (*CursorWarpedToProcPtr) (DeviceIntPtr /* pDev */ ,
int /*x */ ,
int /*y */ );
+typedef void (*CurserConfinedToProcPtr) (DeviceIntPtr /* pDev */ ,
+ ScreenPtr /*pScreen */ ,
+ WindowPtr /*pWindow */ );
+
typedef Bool (*CreateGCProcPtr) (GCPtr /*pGC */ );
typedef Bool (*CreateColormapProcPtr) (ColormapPtr /*pColormap */ );
@@ -563,6 +567,7 @@ typedef struct _Screen {
RecolorCursorProcPtr RecolorCursor;
SetCursorPositionProcPtr SetCursorPosition;
CursorWarpedToProcPtr CursorWarpedTo;
+ CurserConfinedToProcPtr CursorConfinedTo;
/* GC procedures */