aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/ramdac/xf86Cursor.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-03-22 09:17:19 +0000
committermarha <marha@users.sourceforge.net>2010-03-22 09:17:19 +0000
commit348130c450be8b5c4abcb03272b326434e3f5022 (patch)
tree413685260aa63ea6b530af4898603a40f441b768 /xorg-server/hw/xfree86/ramdac/xf86Cursor.c
parent4f736752bbdf3bbf1a6325af7ad470198aa5a82a (diff)
downloadvcxsrv-348130c450be8b5c4abcb03272b326434e3f5022.tar.gz
vcxsrv-348130c450be8b5c4abcb03272b326434e3f5022.tar.bz2
vcxsrv-348130c450be8b5c4abcb03272b326434e3f5022.zip
Updated to xorg-server-1.7.99.902
Diffstat (limited to 'xorg-server/hw/xfree86/ramdac/xf86Cursor.c')
-rw-r--r--xorg-server/hw/xfree86/ramdac/xf86Cursor.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/xorg-server/hw/xfree86/ramdac/xf86Cursor.c b/xorg-server/hw/xfree86/ramdac/xf86Cursor.c
index 6b71f4677..7f23d9ef3 100644
--- a/xorg-server/hw/xfree86/ramdac/xf86Cursor.c
+++ b/xorg-server/hw/xfree86/ramdac/xf86Cursor.c
@@ -129,6 +129,9 @@ xf86CursorCloseScreen(int i, ScreenPtr pScreen)
if (ScreenPriv->isUp && pScrn->vtSema)
xf86SetCursor(pScreen, NullCursor, ScreenPriv->x, ScreenPriv->y);
+ if (ScreenPriv->CurrentCursor)
+ FreeCursor(ScreenPriv->CurrentCursor, None);
+
pScreen->CloseScreen = ScreenPriv->CloseScreen;
pScreen->QueryBestSize = ScreenPriv->QueryBestSize;
pScreen->RecolorCursor = ScreenPriv->RecolorCursor;
@@ -317,6 +320,9 @@ xf86CursorSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCurs,
if (pDev == inputInfo.pointer ||
(!IsMaster(pDev) && pDev->u.master == inputInfo.pointer))
{
+ pCurs->refcnt++;
+ if (ScreenPriv->CurrentCursor)
+ FreeCursor(ScreenPriv->CurrentCursor, None);
ScreenPriv->CurrentCursor = pCurs;
ScreenPriv->x = x;
ScreenPriv->y = y;