desktop-packages team mailing list archive
-
desktop-packages team
-
Mailing list archive
-
Message #83279
[Bug 1395195] [NEW] Evdev doesn't map touch coordinates properly to secondary X screens
Public bug reported:
On system with several X screens on same server, e.g. several GPU cards that doesn't support functions similar to TwinView or BaseMosaic of NVIDIA, evdev doesn't map coordinates of touch events properly.
For example if on server :0 there are two displays connected to one GPU as screen 0 (:0.0) , using TwinView, and third connected to second GPU as screen 1 (:0.1) set below of screen 0.
1st display 1920x1080 +0+0
2nd: 1920x1080 +0+1080
3nd: 1920x1080 +0+2160
All three are touchscreens, mapped with coordinate transformation
matrices, like this:
Section "InputClass"
Identifier "Touch1"
MatchIsTouchscreen "on"
MatchTag "ctouch-1"
Option "TransformationMatrix" "1 0 0 0 0.3333 0 0 0 1"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "Touch2"
MatchIsTouchscreen "on"
MatchTag "ctouch-2"
Option "TransformationMatrix" "1 0 0 0 0.3334 0.3333 0 0 1"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "Touch3"
MatchIsTouchscreen "on"
MatchTag "ctouch-3"
Option "TransformationMatrix" "1 0 0 0 0.3333 0.6667 0 0 1"
Driver "evdev"
EndSection
Two upper touchscreen work as intended, if I touch third, cursor got
placed on bottom edge of display. Same hardware, displays arranged in
horizontal pattern from left to right, result in cursor clinging on
rightmost edge. Relative coordinates pointer device, like mouse, work
perfectly with no err. It loos like evdev reports global coordinates
instead of calculating coordinates relative to origin of second X
screen, and they get restrained by actual size of that screen. I.e. it
reported {x=500, y=2200} instead of {x=500, y =40}.
I just realized that could confirm that theory, by attaching two
displays to second GPU, while having only one connected to first . In
that case if I'm right, while touching second screen , cursor appeared
on corresponding spot of third one. Can't check it until next Monday
now.
** Affects: xserver-xorg-input-evdev (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to xserver-xorg-input-evdev in Ubuntu.
https://bugs.launchpad.net/bugs/1395195
Title:
Evdev doesn't map touch coordinates properly to secondary X screens
Status in “xserver-xorg-input-evdev” package in Ubuntu:
New
Bug description:
On system with several X screens on same server, e.g. several GPU cards that doesn't support functions similar to TwinView or BaseMosaic of NVIDIA, evdev doesn't map coordinates of touch events properly.
For example if on server :0 there are two displays connected to one GPU as screen 0 (:0.0) , using TwinView, and third connected to second GPU as screen 1 (:0.1) set below of screen 0.
1st display 1920x1080 +0+0
2nd: 1920x1080 +0+1080
3nd: 1920x1080 +0+2160
All three are touchscreens, mapped with coordinate transformation
matrices, like this:
Section "InputClass"
Identifier "Touch1"
MatchIsTouchscreen "on"
MatchTag "ctouch-1"
Option "TransformationMatrix" "1 0 0 0 0.3333 0 0 0 1"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "Touch2"
MatchIsTouchscreen "on"
MatchTag "ctouch-2"
Option "TransformationMatrix" "1 0 0 0 0.3334 0.3333 0 0 1"
Driver "evdev"
EndSection
Section "InputClass"
Identifier "Touch3"
MatchIsTouchscreen "on"
MatchTag "ctouch-3"
Option "TransformationMatrix" "1 0 0 0 0.3333 0.6667 0 0 1"
Driver "evdev"
EndSection
Two upper touchscreen work as intended, if I touch third, cursor got
placed on bottom edge of display. Same hardware, displays arranged in
horizontal pattern from left to right, result in cursor clinging on
rightmost edge. Relative coordinates pointer device, like mouse, work
perfectly with no err. It loos like evdev reports global coordinates
instead of calculating coordinates relative to origin of second X
screen, and they get restrained by actual size of that screen. I.e. it
reported {x=500, y=2200} instead of {x=500, y =40}.
I just realized that could confirm that theory, by attaching two
displays to second GPU, while having only one connected to first . In
that case if I'm right, while touching second screen , cursor
appeared on corresponding spot of third one. Can't check it until next
Monday now.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/1395195/+subscriptions
Follow ups
References