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>
This commit is contained in:
Peter Hutterer 2009-07-30 16:16:51 +10:00
parent b83c682e7e
commit d040940efe

View File

@ -912,7 +912,12 @@ ProcXFixesHideCursor (ClientPtr client)
ret = createCursorHideCount(client, pWin->drawable.pScreen); ret = createCursorHideCount(client, pWin->drawable.pScreen);
if (ret == Success) { 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; return ret;
@ -1004,9 +1009,14 @@ CursorFreeHideCount (pointer data, XID id)
{ {
CursorHideCountPtr pChc = (CursorHideCountPtr) data; CursorHideCountPtr pChc = (CursorHideCountPtr) data;
ScreenPtr pScreen = pChc->pScreen; ScreenPtr pScreen = pChc->pScreen;
DeviceIntPtr dev;
deleteCursorHideCount(pChc, pChc->pScreen); 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; return 1;
} }