From: Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 30 Mar 2013 04:18:26 +0000 (13:18 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 30 Mar 2013 04:18:26 +0000 (13:18 +0900)
Subject: [E-devel] [PATCH] Fix one direction at time scrolling

Would you check if the attached patch is right? It seems that the
negation
was incorrect, inhibiting the one-direction-at-time flag to take
effect as
if there is a scroll (x or y, or '1 || 1 == 1')  and it would be negated
evaluating to 0.

This flag should remove the annoying behavior of scroller inside
scroller
when you start dragging in one direction and then move slightly on the
other and it would affect both scrollers. My case is an horizontal panel
with 3 genlists side-by-side. If I start moving from one list to another
and my finger/mouse goes up/down, I don't want the lists to scroll.
Similarly if I'm scrolling the list (vertical) and then I slightly
move my
finger left/right I don't want the panel to change.

It is still annoying that one axis should be the double as the other.
I'd
say that only 50% more would do, suggestions?

If it's right, would you please apply as my devenv is a mess right now
(working from virtualbox on a temp machine)

legacy/elementary/src/lib/elm_interface_scrollable.c

index bb769ca..f49e209 100644 (file)
@@ -2938,7 +2938,7 @@ _elm_scroll_mouse_move_event_cb(void *data,
         if (y < 0) y = -y;
 
         if ((sid->one_direction_at_a_time) &&
-            (!((sid->down.dir_x) || (sid->down.dir_y))))
+            (((sid->down.dir_x) || (sid->down.dir_y))))
           {
              if (x > _elm_config->thumbscroll_threshold)
                {