Re: [PATCH synaptics] Fix scoll increment for non-smooth scrolling (#46617)

2012-03-16 Thread Chase Douglas
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)

2012-03-01 Thread Peter Hutterer
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