mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-01-06 06:10:11 +01:00
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>
This commit is contained in:
parent
afa680e495
commit
66089e9129
1 changed files with 4 additions and 3 deletions
|
|
@ -302,9 +302,10 @@ 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 || !IsMaster(pDev) &&
|
||||
GetMaster(pDev->u.master, MASTER_POINTER) == inputInfo.pointer))
|
||||
(*ScreenPriv->spriteFuncs->SetCursor)(pDev, pScreen, NullCursor, x, y);
|
||||
else if (ScreenPriv->isUp) {
|
||||
xf86SetCursor(pScreen, NullCursor, x, y);
|
||||
ScreenPriv->isUp = FALSE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue