Two cursor using Xinerama on XServer 1.5.99.3

Peter Hutterer peter.hutterer at who-t.net
Thu Mar 12 01:28:56 PDT 2009


On Wed, Mar 11, 2009 at 10:36:49AM +0800, GordonYuan at viatech.com.cn wrote:
>      I compared Xorg 1.5.99.3 with Xorg 1.5.2, xf86CursorSetCursor seems
> to cause the problem.  Xf86CursorSetCursor in Xorg 1.5.99.3 adds
> judgement "pDev != inputInfo.pointer" . 
> 
>      For example: Xorg 1.5.99.3   xf86Cursor.c  Line 305  if
> (ScreenPriv->SWCursor || pDev != inputInfo.pointer)
> 
>                  Xorg 1.5.99.3   xf86Cursor.c   Line 317 if (pDev ==
> inputInfo.pointer)
> 
>  
> 
> During my debuging process(move cursor from screen to screen), I found
> pDev  was never equal to inputInfo.pointer every time
> xf86CursorSetCursor was called . 
> 
> What's the meaning of inputInfo.pointer? Shouldn't pDev is equal to
> inputInfo.pointer?
> 
>      Thanks!

inputInfo.pointer is the virtual core pointer, the device that controls the
visible cursor sprite.
Looking at the code I think this check is incomplete. This code should only be
called for others than the VCP (which is usually hw-rendered).

IIRC this code is only called for slave devices, so it's probably
if (ScreenPriv->SWCursor || (!pDev->isMaster && pDev->u.master != inputInfo.pointer)

Can you give this a test please?
 
Cheers,
  Peter



More information about the xorg mailing list