Imported Debian patch 2:1.11.4-0ubuntu10.10
[glsdk/xserver.git] / debian / patches / 237-dix-set-the-device-transformation-matrix.patch
1 From 3d1051aecbb1955084804133cacd12c7f696833a Mon Sep 17 00:00:00 2001
2 From: Peter Hutterer <peter.hutterer@who-t.net>
3 Date: Thu, 20 Sep 2012 05:56:39 +1000
4 Subject: [PATCH] dix: set the device transformation matrix
6 The property handler is registered after setting the property, so
7 dev->transform remains as all-zeros. That causes pixman_f_transform_invert()
8 to fail (in transformAbsolute()) and invert remains as garbage. This
9 may then cause a cursor jump to 0,0.
11 Since the axes are not yet initialized here and we need to allow for drivers
12 changing the matrix, we cannot use the property handler for matrix
13 initialization, essentially duplicating the code.
15 Triggered by the fix to (#49347) in 749a593e49adccdf1225be28a521412ec85333f4
17 https://bugzilla.redhat.com/show_bug.cgi?id=852841
19 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
20 Reviewed-by: Chase Douglas <chase.douglas@ubuntu.com>
21 Signed-off-by: Keith Packard <keithp@keithp.com>
22 ---
23  dix/devices.c | 3 +++
24  1 file changed, 3 insertions(+)
26 diff --git a/dix/devices.c b/dix/devices.c
27 index 9cf04ed..66d4406 100644
28 --- a/dix/devices.c
29 +++ b/dix/devices.c
30 @@ -306,6 +306,9 @@ AddInputDevice(ClientPtr client, DeviceProc deviceProc, Bool autoStart)
31      /* unity matrix */
32      memset(transform, 0, sizeof(transform));
33      transform[0] = transform[4] = transform[8] = 1.0f;
34 +    dev->transform.m[0][0] = 1.0;
35 +    dev->transform.m[1][1] = 1.0;
36 +    dev->transform.m[2][2] = 1.0;
37  
38      XIChangeDeviceProperty(dev, XIGetKnownProperty(XI_PROP_TRANSFORM),
39                             XIGetKnownProperty(XATOM_FLOAT), 32,
40 -- 
41 1.7.11.3