xorg-x11-server/0001-dix-set-the-device-transformation-matrix.patch

33 lines
1.2 KiB
Diff
Raw Normal View History

From 171059409177652b9b7af31506dd8ee0e018330d Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@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@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