[gtk+] wayland: fix up/down mix up in discrete events



commit e74ecfe22e75cf4ec57b36738a66d1fba2d6fd5c
Author: Olivier Fourdan <ofourdan redhat com>
Date:   Tue May 3 10:44:16 2016 +0200

    wayland: fix up/down mix up in discrete events
    
    The wayland specification for discrete step information for scroll and
    other axes reads:
    
    | The discrete value carries the directional information. e.g. a
    | value of -2 is two steps towards the negative direction of this axis.
    
    mutter sets a value of 1 for SCROLL_DOWN events and -1 for SCROLL_UP
    events.
    
    gdkdevice Wayland backend does the opposite, it translates a positive
    discrete value as SCROLL_UP and a negative value as SCROLL_DOWN, which
    ends up inverting the scrolling direction.
    
    Fix the logic in gdkdevice Wayland to use a positive value as
    SCROLL_DOWN and a negative value as SCROLL_UP so that it matches mutter
    and weston logic.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=765907

 gdk/wayland/gdkdevice-wayland.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index ae564ab..13a7917 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -1138,9 +1138,9 @@ flush_scroll_event (GdkWaylandSeat             *seat,
       else if (pointer_frame->discrete_x < 0)
         direction = GDK_SCROLL_RIGHT;
       else if (pointer_frame->discrete_y > 0)
-        direction = GDK_SCROLL_UP;
-      else
         direction = GDK_SCROLL_DOWN;
+      else
+        direction = GDK_SCROLL_UP;
 
       flush_discrete_scroll_event (seat, direction);
       pointer_frame->discrete_x = 0;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]