After changing the Coordinate Transformation Matrix of an input device the cursor
start to jump around if you touch the screen.
The feature seems to work for the most part but has this annoying behavior.
I located the file where the transformation coefficients are processed.
Maybe the problem lies here: xorg-server-1.10.3/dix/getevents.c:1077-...
X.Org X Server 1.10.3
Release Date: 2011-07-08
X Protocol Version 11, Revision 0
Build Operating System: Linux 2.6.39-gentoo-r2 i686 Gentoo
Module evdev: vendor="X.Org Foundation"
compiled for 1.10.3, module version = 2.6.0
I have this problem too. However, the cursor also jumps when I'm dragging something using the touchscreen or when I'm drawing using the touchscreen. Single clicks do not work either. When I tap the screen, the cursor goes to the place where I touched the screen, but as soon as I release the finger the cursor jumps to some random position and the click is not registered.
My configuration is two 1920x1080 monitors physically placed one above the other. The bottom monitor has a touchscreen, the upper one does not.
I use the following xinput command:
xinput set-prop "Quanta OpticalTouchScreen" "Coordinate Transformation Matrix" 1 0 0 0 0.5 0.5 0 0 1
The coordinate transformation seems to take place correctly after the above command is issued, i.e., X understands that the touchscreen covers only the bottom monitor and not the entire desktop. However, the touchscreen becomes unusable because it's not possible to click anywhere by tapping and the random mouse movements that occur when dragging or drawing make it impossible to perform these actions using the touchscreen.
This bug seems to be the same as bug #50664.
Besides the above mentioned problems with the touchscreen after setting the coordinate transformation matrix, the mouse also starts to behave strangely. In many occasions, it behaves as if the left button was stuck down. Some examples:
1. In Libreoffice Calc, if I hover the mouse over the zoom control bar in the bottom right corner of Calc's window, the mouse grabs the zoom control by itself, without me clicking any button. If I move the mouse left and right, without ever touching its buttons, it drags the zoom control left and right.
2. In Libreoffice Calc, if I left-click a tab other than the currently selected one, the new tab is selected as expected, but the mouse behaves as if the clicked button had stuck. When I move the mouse after selecting another tab, the mouse cursor changes to the arrow with the little rectangle, as if it was dragging a cell.
3. In Chromium, if I right-click a link and left-click "Open link in new tab", the mouse behaves as if the left-click stuck. When I move the mouse after opening the new tab, the mouse cursor changes to the little hand grabbing a sheet, as if I was moving the clicked link.
4. In Chromium, if I middle-click a link to open it in a new tab and then left-click the newly opened tab, the mouse cursor changes to the cross with arrowed points (the move window cursor) and the window is restored, as if I had started to drag it and let it go right after.
5. In Handbrake, when a dialog opens, hovering the mouse over its text without pressing any button selects the text.
I have same issues as Marcelo with eGalax, 3M and BARQ touchscreens, which on late kernel versions may be used only with xorg's driver (evdev)
Ubuntu tracker on Launchpad got similar thread, they got sever uproposed fixes for various versions of x-server:
The coordinate transformation matrix transforms the input coordinates, so if you set it incorrectly, it will behave incorrectly. Are you sure you set it to the right values?
Well, I think it is set correctly, because after issuing the mentioned xinput command, X recognizes the correct area of the desktop as being covered by the touchscreen, instead of thinking it covers the entire desktop. However, all those mentioned collateral effects come up. All this is mentioned in the original bug report.
Even if it was set incorrectly, the expected result would be the cursor going to incorrect positions on the desktop when you touch the screen, right? All these random jumps and weird behaviors are unexpected even if the coordinate transformation was done incorrectly.
Anyway, I described my desktop's geometry and the transformation matrix I've been using, you can verify it for yourself.