[xorg-x11-server/f17] Set the transformation matrix to the unity matrix to avoid spurious cursor
Peter Hutterer
whot at fedoraproject.org
Thu Sep 20 07:44:16 UTC 2012
commit 3757892a9e371af8f4d101c82df1763a8da95f7d
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Thu Sep 20 17:50:03 2012 +1000
Set the transformation matrix to the unity matrix to avoid spurious cursor
jumps (#852841)
...-dix-set-the-device-transformation-matrix.patch | 32 ++++++++++++++++++++
xorg-x11-server.spec | 11 +++++-
2 files changed, 41 insertions(+), 2 deletions(-)
---
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 <peter.hutterer at who-t.net>
+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 <peter.hutterer at who-t.net>
+---
+ 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 <peter.hutterer at redhat.com> 1.12.3-2
+- Set the transformation matrix to the unity matrix to avoid spurious cursor
+ jumps (#852841)
+
* Mon Aug 20 2012 Peter Hutterer <peter.hutterer at redhat.com> 1.12.3-1
- xserver 1.12.3
- Update displayfd newline patch to upstream's version
More information about the scm-commits
mailing list