1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
Fix handling of events when the X and Y valuators are not set. This fixes cursor
warping to (0,0) on Wacom button press events.
Index: xorg-server/dix/getevents.c
===================================================================
--- xorg-server.orig/dix/getevents.c 2011-08-24 12:56:49.905650624 +0300
+++ xorg-server/dix/getevents.c 2011-08-24 12:56:49.925650626 +0300
@@ -1185,31 +1185,37 @@
}
}
- if (valuator_mask_isset(&mask, 0))
+ if (valuator_mask_isset(&mask, 0) || valuator_mask_isset(&mask, 1))
{
- x = valuator_mask_get(&mask, 0);
- pDev->last.untransformed_x = x;
- } else
- x = pDev->last.untransformed_x;
- if (valuator_mask_isset(&mask, 1))
- {
- y = valuator_mask_get(&mask, 1);
- pDev->last.untransformed_y = y;
- } else
- y = pDev->last.untransformed_y;
+ if (valuator_mask_isset(&mask, 0))
+ {
+ x = valuator_mask_get(&mask, 0);
+ pDev->last.untransformed_x = x;
+ } else
+ x = pDev->last.untransformed_x;
+ if (valuator_mask_isset(&mask, 1))
+ {
+ y = valuator_mask_get(&mask, 1);
+ pDev->last.untransformed_y = y;
+ } else
+ y = pDev->last.untransformed_y;
- transformAbsolute(pDev, &mask, &x, &y);
+ transformAbsolute(pDev, &mask, &x, &y);
- if (x != pDev->last.valuators[0])
- valuator_mask_set(&mask, 0, x);
- else
- valuator_mask_unset(&mask, 0);
- if (y != pDev->last.valuators[1])
- valuator_mask_set(&mask, 1, y);
- else
- valuator_mask_unset(&mask, 1);
+ if (x != pDev->last.valuators[0])
+ valuator_mask_set(&mask, 0, x);
+ else
+ valuator_mask_unset(&mask, 0);
+ if (y != pDev->last.valuators[1])
+ valuator_mask_set(&mask, 1, y);
+ else
+ valuator_mask_unset(&mask, 1);
- moveAbsolute(pDev, &x, &y, &mask);
+ moveAbsolute(pDev, &x, &y, &mask);
+ } else {
+ x = pDev->last.valuators[0];
+ y = pDev->last.valuators[1];
+ }
} else {
if (flags & POINTER_ACCELERATE) {
/* FIXME: Pointer acceleration only requires X and Y values. This
|