summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-07-30 16:16:51 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-08-03 10:11:48 +1000
commitd040940efe041b57e6323921c380ceb2bb43f41e (patch)
tree7ac716812db4bfbd19f688b180df76b59b1040dd
parentb83c682e7ea4e10757eca6363de28281108591a8 (diff)
xfixes: FixesHideCursor should work on all master pointers.
Presumably, a client calling HideCursor doesn't want any cursor displayed. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--xfixes/cursor.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/xfixes/cursor.c b/xfixes/cursor.c
index 698e4d58f..d91dbff70 100644
--- a/xfixes/cursor.c
+++ b/xfixes/cursor.c
@@ -912,7 +912,12 @@ ProcXFixesHideCursor (ClientPtr client)
ret = createCursorHideCount(client, pWin->drawable.pScreen);
if (ret == Success) {
- CursorDisplayCursor(PickPointer(client), pWin->drawable.pScreen, CursorCurrent);
+ DeviceIntPtr dev;
+ for (dev = inputInfo.devices; dev; dev = dev->next)
+ {
+ if (IsMaster(dev) && IsPointerDevice(dev))
+ CursorDisplayCursor(dev, pWin->drawable.pScreen, CursorCurrent);
+ }
}
return ret;
@@ -1004,9 +1009,14 @@ CursorFreeHideCount (pointer data, XID id)
{
CursorHideCountPtr pChc = (CursorHideCountPtr) data;
ScreenPtr pScreen = pChc->pScreen;
+ DeviceIntPtr dev;
deleteCursorHideCount(pChc, pChc->pScreen);
- CursorDisplayCursor(inputInfo.pointer, pScreen, CursorCurrent);
+ for (dev = inputInfo.devices; dev; dev = dev->next)
+ {
+ if (IsMaster(dev) && IsPointerDevice(dev))
+ CursorDisplayCursor(dev, pScreen, CursorCurrent);
+ }
return 1;
}