Re: 2 bugs in the X server

[email protected] (Michal Maruška)
Newsgroups gmane.comp.xfree86.devel
Message-ID <[email protected]>
[email protected] (Michal Maruška) writes:

> Hello,
>   I know about 2 bugs in X server which are quite reproducible with my programs.
>  ....
> 1/ There is a way to see a screen full of pixmaps (instead of what should be on
>    the screen).
>
>   I can reproduce this bug with sawfish WM.
>  .....
>   When I do such movement w/ keyboard using mouse emulation, I can trigger this funny
>   bug.

I think I found the root of this problem. It's independent of the video
driver, just due to a bug in XKB code for "mouse emulation".


XkbDDXFakePointerMotion in xc/programs/Xserver/xkb/ddxFakeMtn.c does not check
if the (new pointer) position is outside screen limits (at least in my case:
xinerama compiled in, but not enabled).

... so it calls  (*pScreen->SetCursorPosition)(pScreen, oldX, oldY, TRUE);
with wrong oldX,oldY.


OTOH  xf86PostMotionEvent calls miPointerAbsoluteCursor which does the checks.

So, XkbDDXFakePointerMotion should either do the checks or (preferebly) delegate
to some mi* function, but it will take me some time before I understand which one.



Testing with the "nv" driver I can see some funny little screen shift when I
move the pointer (by keyboard) against an edge of the screen.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.