Evdev doesn't map touch coordinates properly to secondary X screens

Bug #1395195 reported by Yaroslav Sterkhov on 2014-11-21
This bug affects 1 person
Affects Status Importance Assigned to Milestone
xserver-xorg-input-evdev (Ubuntu)

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"

Section "InputClass"
 Identifier "Touch2"
 MatchIsTouchscreen "on"
 MatchTag "ctouch-2"
 Option "TransformationMatrix" "1 0 0 0 0.3334 0.3333 0 0 1"
 Driver "evdev"

Section "InputClass"
 Identifier "Touch3"
 MatchIsTouchscreen "on"
 MatchTag "ctouch-3"
 Option "TransformationMatrix" "1 0 0 0 0.3333 0.6667 0 0 1"
 Driver "evdev"

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 post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers