diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2009-07-30 16:16:51 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-08-03 10:11:48 +1000 |
commit | d040940efe041b57e6323921c380ceb2bb43f41e (patch) | |
tree | 7ac716812db4bfbd19f688b180df76b59b1040dd | |
parent | b83c682e7ea4e10757eca6363de28281108591a8 (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.c | 14 |
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; } |