Date: Thursday, March 15, 2012 @ 05:44:17 Author: thomas Revision: 153503
Add patch: Fix inverted circular scrolling direction Added: xf86-input-synaptics/trunk/synaptics-Fix-inverted-circular-scrolling-direction.patch -----------------------------------------------------------+ synaptics-Fix-inverted-circular-scrolling-direction.patch | 40 ++++++++++++ 1 file changed, 40 insertions(+) Added: synaptics-Fix-inverted-circular-scrolling-direction.patch =================================================================== --- synaptics-Fix-inverted-circular-scrolling-direction.patch (rev 0) +++ synaptics-Fix-inverted-circular-scrolling-direction.patch 2012-03-15 09:44:17 UTC (rev 153503) @@ -0,0 +1,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.hutte...@who-t.net> +X-Patchwork-Id: 9512 +Message-Id: <20120314032729.ga16...@yabbi.bne.redhat.com> +To: "X.Org Devel List" <xorg-de...@lists.freedesktop.org> +Cc: Thomas =?iso-8859-1?Q?B=E4chler?= <tho...@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 <tho...@archlinux.org> +Signed-off-by: Peter Hutterer <peter.hutte...@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); + }