From 3757892a9e371af8f4d101c82df1763a8da95f7d Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Sep 20 2012 07:50:03 +0000 Subject: Set the transformation matrix to the unity matrix to avoid spurious cursor jumps (#852841) --- diff --git a/0001-dix-set-the-device-transformation-matrix.patch b/0001-dix-set-the-device-transformation-matrix.patch new file mode 100644 index 0000000..7a3a398 --- /dev/null +++ b/0001-dix-set-the-device-transformation-matrix.patch @@ -0,0 +1,32 @@ +From 171059409177652b9b7af31506dd8ee0e018330d Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Thu, 20 Sep 2012 01:22:32 +1000 +Subject: [PATCH] dix: set the device transformation matrix + +The property handler is registered after setting the property, so +dev->transform remains as all-zeros. That causes pixman_f_transform_invert() +to fail (transformAbsolute()) and invert remains as garbage. In some cases, +this may then cause a cursor jump to 0,0. + +Signed-off-by: Peter Hutterer +--- + dix/devices.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/dix/devices.c b/dix/devices.c +index 46c759c..3cacbeb 100644 +--- a/dix/devices.c ++++ b/dix/devices.c +@@ -306,6 +306,9 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart) + /* unity matrix */ + memset(transform, 0, sizeof(transform)); + transform[0] = transform[4] = transform[8] = 1.0f; ++ dev->transform.m[0][0] = 1.0; ++ dev->transform.m[1][1] = 1.0; ++ dev->transform.m[2][2] = 1.0; + + XIChangeDeviceProperty(dev, XIGetKnownProperty(XI_PROP_TRANSFORM), + XIGetKnownProperty(XATOM_FLOAT), 32, +-- +1.7.11.2 + diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 89c7a64..4d5646f 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -48,7 +48,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.12.3 -Release: 1%{?gitdate:.%{gitdate}}%{dist} +Release: 2%{?gitdate:.%{gitdate}}%{dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -112,10 +112,13 @@ Patch7018: xserver-1.12-os-print-newline-after-printing-display-name.patch # send keycode/event type for slow keys enable (#816764) Patch7020: xserver-1.12-xkb-fill-in-keycode-and-event-type-for-slow-keys-ena.patch +# Bug 852841 - Mouse jumps to edges / corners when using an absolute input +# device (ie virtual machine usb tablet) +Patch7021: 0001-dix-set-the-device-transformation-matrix.patch + %define moduledir %{_libdir}/xorg/modules %define drimoduledir %{_libdir}/dri %define sdkdir %{_includedir}/xorg - %ifarch s390 s390x %{?rhel:ppc ppc64} %define with_hw_servers 0 %else @@ -581,6 +584,10 @@ rm -rf $RPM_BUILD_ROOT %{xserver_source_dir} %changelog +* Thu Sep 20 2012 Peter Hutterer 1.12.3-2 +- Set the transformation matrix to the unity matrix to avoid spurious cursor + jumps (#852841) + * Mon Aug 20 2012 Peter Hutterer 1.12.3-1 - xserver 1.12.3 - Update displayfd newline patch to upstream's version