summaryrefslogtreecommitdiff
path: root/dix
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2016-09-13 15:16:56 +0800
committerKeith Packard <keithp@keithp.com>2016-09-19 08:55:02 -0700
commit5998da7855750dd947288349a0b14e65db1e3c8c (patch)
treea718de563550846c3b8c38aa9fb88065b1ffbede /dix
parentdaf48a3aba7d5c42d7156f0d0e2b1d8aae423303 (diff)
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 <jadahl@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'dix')
-rw-r--r--dix/events.c5
1 files changed, 5 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);
}
}