ca7f815695
- xserver-1.6.0-xtest-pointerscreen.patch: set POINTER_SCREEN flag for core XTestFakeInput events (#490984) - xserver-1.6.0-xinerama-cursors.patch: don't display SW cursors when switching screens. - xserver-1.6.0-xinerama-crashes.patch: don't crash on key repeats in xinerama setups.
38 lines
1.6 KiB
Diff
38 lines
1.6 KiB
Diff
From 3323f7ac880d5a8261d5b22059374fc9de8ca683 Mon Sep 17 00:00:00 2001
|
|
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Date: Wed, 25 Mar 2009 12:55:42 +1000
|
|
Subject: [PATCH] xfree86: fix SWCursor check in xf86CursorSetCursor.
|
|
|
|
Wrong check for inputInfo.pointer resulted in a SW cursor being rendered when
|
|
the pointer left the screen (in a Xinerama setup).
|
|
We must call the sprite rendering function if
|
|
- SW cursors are enabled, or
|
|
- The current device is not the VCP and not attached to the VCP.
|
|
|
|
Reported-by: Gordon Yuan <GordonYuan@viatech.com.cn>
|
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
---
|
|
hw/xfree86/ramdac/xf86Cursor.c | 6 +++---
|
|
1 files changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/hw/xfree86/ramdac/xf86Cursor.c b/hw/xfree86/ramdac/xf86Cursor.c
|
|
index 2b73b16..896ed37 100644
|
|
--- a/hw/xfree86/ramdac/xf86Cursor.c
|
|
+++ b/hw/xfree86/ramdac/xf86Cursor.c
|
|
@@ -302,9 +302,9 @@ xf86CursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs,
|
|
|
|
|
|
if (pCurs == NullCursor) { /* means we're supposed to remove the cursor */
|
|
- if (ScreenPriv->SWCursor || pDev != inputInfo.pointer)
|
|
- (*ScreenPriv->spriteFuncs->SetCursor)(pDev, pScreen, NullCursor,
|
|
- x, y);
|
|
+ if (ScreenPriv->SWCursor ||
|
|
+ !(pDev == inputInfo.pointer || !pDev->isMaster && pDev->u.master == inputInfo.pointer))
|
|
+ (*ScreenPriv->spriteFuncs->SetCursor)(pDev, pScreen, NullCursor, x, y);
|
|
else if (ScreenPriv->isUp) {
|
|
xf86SetCursor(pScreen, NullCursor, x, y);
|
|
ScreenPriv->isUp = FALSE;
|
|
--
|
|
1.6.0.6
|
|
|