summaryrefslogtreecommitdiff
path: root/extra/xf86-input-synaptics/synaptics-Fix-inverted-circular-scrolling-direction.patch
blob: fee383855faeb3c686aa3bbef89096dedae65138 (plain)
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
From patchwork Wed Mar 14 03:27:29 2012
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Subject: [synaptics] Fix inverted circular scrolling direction
Date: Wed, 14 Mar 2012 03:27:29 -0000
From: Peter Hutterer <peter.hutterer@who-t.net>
X-Patchwork-Id: 9512
Message-Id: <20120314032729.GA16614@yabbi.bne.redhat.com>
To: "X.Org Devel List" <xorg-devel@lists.freedesktop.org>
Cc: Thomas =?iso-8859-1?Q?B=E4chler?= <thomas@archlinux.org>

Introduced in 26831a6eeac6762ad4d99532f62ebbab0827de10.
In said commit, the old-style button events were changed to delta
accumulation. Alas, for circular scrolling, a positive delta is up whereas
for everything else a positive delta is down.

Reported-by: Thomas Bächler <thomas@archlinux.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

---
src/synaptics.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/synaptics.c b/src/synaptics.c
index fa46f0d..c9609cd 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2554,9 +2554,9 @@ HandleScrolling(SynapticsPrivate *priv, struct SynapticsHwState *hw,
 	double diff = diffa(priv->scroll.last_a, angle(priv, hw->x, hw->y));
 	if (delta >= 0.005 && diff != 0.0) {
 	    if (priv->circ_scroll_vert)
-		priv->scroll.delta_y += diff / delta * para->scroll_dist_vert;
+		priv->scroll.delta_y -= diff / delta * para->scroll_dist_vert;
 	    else
-		priv->scroll.delta_x += diff / delta * para->scroll_dist_horiz;;
+		priv->scroll.delta_x -= diff / delta * para->scroll_dist_horiz;;
 	    priv->scroll.last_a = angle(priv, hw->x, hw->y);
 	    DBG(priv, 10, "circ scoll delta: %.2f diff %.2f angle %.2f\n", delta, diff, priv->scroll.last_a);
         }