Re: [PATCH synaptics] Fix scoll increment for non-smooth scrolling (#46617)
On 03/01/2012 05:10 PM, Peter Hutterer wrote: Introduced in 2603ad69b997c999404ecc441e0d64ea2cc22018. Previously, the delta was incremented by (actual delta/scroll dist), button clicks where then sent while (delta-- = 1). After 2603ad69b997c999404ecc441e0d64ea2cc22018, the delta was incremented by the delta only, scroll dist was used as increment in the smooth scrolling information. On non-smooth-scrolling servers, the driver would now send too many events. Restore the old behaviour by dividing by the scroll distance before entering the button click loop. X.Org Bug 46617 http://bugs.freedesktop.org/show_bug.cgi?id=46617 Tested-by: Peter Zotov whitequ...@whitequark.org Signed-off-by: Peter Hutterer peter.hutte...@who-t.net --- src/synaptics.c |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/synaptics.c b/src/synaptics.c index 139f237..7713784 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -2743,6 +2743,12 @@ post_scroll_events(const InputInfoPtr pInfo) if (valuator_mask_num_valuators(priv-scroll_events_mask)) xf86PostMotionEventM(pInfo-dev, FALSE, priv-scroll_events_mask); #else +SynapticsParameters *para = priv-synpara; + +/* smooth scrolling uses the dist as increment */ +priv-scroll.delta_y /= para-scroll_dist_vert; +priv-scroll.delta_x /= para-scroll_dist_horiz; + while (priv-scroll.delta_y = -1.0) { post_button_click(pInfo, 4); Sounds reasonable to me. Reviewed-by: Chase Douglas chase.doug...@canonical.com ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH synaptics] Fix scoll increment for non-smooth scrolling (#46617)
Introduced in 2603ad69b997c999404ecc441e0d64ea2cc22018. Previously, the delta was incremented by (actual delta/scroll dist), button clicks where then sent while (delta-- = 1). After 2603ad69b997c999404ecc441e0d64ea2cc22018, the delta was incremented by the delta only, scroll dist was used as increment in the smooth scrolling information. On non-smooth-scrolling servers, the driver would now send too many events. Restore the old behaviour by dividing by the scroll distance before entering the button click loop. X.Org Bug 46617 http://bugs.freedesktop.org/show_bug.cgi?id=46617 Tested-by: Peter Zotov whitequ...@whitequark.org Signed-off-by: Peter Hutterer peter.hutte...@who-t.net --- src/synaptics.c |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/synaptics.c b/src/synaptics.c index 139f237..7713784 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -2743,6 +2743,12 @@ post_scroll_events(const InputInfoPtr pInfo) if (valuator_mask_num_valuators(priv-scroll_events_mask)) xf86PostMotionEventM(pInfo-dev, FALSE, priv-scroll_events_mask); #else +SynapticsParameters *para = priv-synpara; + +/* smooth scrolling uses the dist as increment */ +priv-scroll.delta_y /= para-scroll_dist_vert; +priv-scroll.delta_x /= para-scroll_dist_horiz; + while (priv-scroll.delta_y = -1.0) { post_button_click(pInfo, 4); -- 1.7.7.6 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel