Commit 5998da78 authored by Jonas Ådahl's avatar Jonas Ådahl Committed by Keith Packard
Browse files

dix: Incroduce CursorConfinedTo vfunc in Screen



This function will be called when a pointer is grabbed non-root window
set as the 'confineTo'. This will enable the ddx to handle the
confinement their own way.
Signed-off-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
Reviewed-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard's avatarKeith Packard <keithp@keithp.com>
parent daf48a3a
......@@ -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);
}
}
......
......@@ -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 */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment