diff options
-rw-r--r-- | dix/events.c | 5 | ||||
-rw-r--r-- | include/scrnintstr.h | 5 |
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 */ |