[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#526260: xorg: cursor appears on all displays



Julien Cristau <jcristau@debian.org> writes:

> On Thu, Apr 30, 2009 at 00:52:47 -0700, Jakob wrote:
>
>> I have X configured with two screens (without Xinerama) like this:
>> 
>>   Section "ServerLayout"
>>     Identifier     "Default Layout"
>>     Screen         0 "Screen0" 0 0
>>     Screen         1 "Screen1" RightOf "Screen0"
>>     ...
>> 
>> Previously, the mouse cursor worked seamlessly across displays.  After
>> upgrading to the newest xorg version, though, the cursor persists on the
>> inactive screen after moving across the display boundary.  It's as if
>> the last displayed position on the previous screen isn't erased when it
>> hops to the next screen.
>> 
>> This doesn't interfere with normal operations, it's just annoying :-).
>> 
> You're using the closed nvidia driver.  Is there any evidence this is
> not a driver bug?

i had the same problem and i just tried switching to the nv driver but
the multiple cursor problem persisted. i applied the following patch:

diff -uNr a/hw/xfree86/ramdac/xf86Cursor.c b/hw/xfree86/ramdac/xf86Cursor.c
--- a/hw/xfree86/ramdac/xf86Cursor.c	2008-12-17 01:03:04.000000000 +0500
+++ b/hw/xfree86/ramdac/xf86Cursor.c	2009-05-17 23:07:45.000000000 +0600
@@ -302,9 +302,9 @@
 
 
     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;

available at

  http://launchpadlibrarian.net/26870925/178_second_cursor_fix.patch

and i can confirm that it fixes the multiple cursor problem with both
the nv and nvidia drivers.

--alex--

-- 
| I believe the moment is at hand when, by a paranoiac and active |
|  advance of the mind, it will be possible (simultaneously with  |
|  automatism and other passive states) to systematize confusion  |
|  and thus to help to discredit completely the world of reality. |



Reply to: