kdrive rotation problems

Harald Radke harryrat at postnuklear.de
Thu Dec 20 08:15:20 PST 2007


>Using X11R7.3 X.org release, I experienced the following issue.

>Everything works fine if I run the server with:
>Xfbdev -keybd keyboard,device=/dev/input/event1 -mouse
>tslib,,device=/dev/input/event0

>Instead, when I rotate the screen with:
>Xfbdev -screen 240x320 at 90 -keybd keyboard,device=/dev/input/event1
>-mouse tslib,,device=/dev/input/event0

>The Y coordinate is correctly managed, while the X remains stuck at
>0...

Same problem here (Xorg-1.4.0 kdrive server Xfbdev) ... I had a quick look 
into the code, I think this happens in src/kinput.c KdEnqueuePointerEvent().
Here, the transformation matrix is applied to the coords, swapping coords if
necessary (depending on rotation) and then basically queued as events.

In case of a rotation of 90 degs -> x = -ry, which I guess is clipped to 0 
later on in GetPointerEvents() (dix/getevents.c), thus resulting in zeroing 
the x-axis....

Basically I guess besides applying the matrix on the coords, depending on 
coords < 0 the max axis values have to be added to yield correctly 
transformed coords


I just started to look into xserver code, so apologies if I am totally wrong! 

Greez,

Harry

PS: first posting here, plz be gentle with an old newbie (:



More information about the xorg mailing list