aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/xorg-xserver/xserver-kdrive-1.4.0.90/xorg-1.4-kdrive-rotation.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/xorg-xserver/xserver-kdrive-1.4.0.90/xorg-1.4-kdrive-rotation.patch')
-rw-r--r--recipes/xorg-xserver/xserver-kdrive-1.4.0.90/xorg-1.4-kdrive-rotation.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/recipes/xorg-xserver/xserver-kdrive-1.4.0.90/xorg-1.4-kdrive-rotation.patch b/recipes/xorg-xserver/xserver-kdrive-1.4.0.90/xorg-1.4-kdrive-rotation.patch
new file mode 100644
index 0000000000..5e3eb8ee14
--- /dev/null
+++ b/recipes/xorg-xserver/xserver-kdrive-1.4.0.90/xorg-1.4-kdrive-rotation.patch
@@ -0,0 +1,31 @@
+diff -rup a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
+--- a/hw/kdrive/src/kinput.c 2007-08-23 21:04:53.000000000 +0200
++++ b/hw/kdrive/src/kinput.c 2007-12-22 12:53:27.679853402 +0100
+@@ -2075,19 +2075,25 @@ KdEnqueuePointerEvent(KdPointerInfo *pi,
+
+ /* we don't need to transform z, so we don't. */
+ if (flags & KD_MOUSE_DELTA) {
++/* does it really make sense to transform relative coordinates depending on screen rotation??
+ if (pi->transformCoordinates) {
+ x = matrix[0][0] * rx + matrix[0][1] * ry;
+ y = matrix[1][0] * rx + matrix[1][1] * ry;
+ }
+- else {
++ else {*/
+ x = rx;
+ y = ry;
+- }
++/* }*/
+ }
+ else {
+ if (pi->transformCoordinates) {
+ x = matrix[0][0] * rx + matrix[0][1] * ry;
+ y = matrix[1][0] * rx + matrix[1][1] * ry;
++/* negative absolute values indicate calculation from the oposite end of the axis */
++ if (x < 0)
++ x += matrix[0][2];
++ if (y < 0)
++ y += matrix[1][2];
+ }
+ else {
+ x = rx;