diff options
author | Matthias Clasen <mclasen@redhat.com> | 2018-08-15 22:02:45 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2018-08-15 22:02:45 +0000 |
commit | c9f875bd770bf99ee61ba6b7098e5ca018925f82 (patch) | |
tree | 9a230173ed3e79519dd2ce6af60fc0a63dfd07bb | |
parent | 677627346d0fe14dc75a0f4fc5d4a734d24c6872 (diff) | |
parent | 5c6596ad99cf23a7e621b4752c7066571dce3bc2 (diff) | |
download | gtk+-c9f875bd770bf99ee61ba6b7098e5ca018925f82.tar.gz |
Merge branch 'fix-shifted-scrolling-gtk3' into 'gtk-3-24'
gtkscrolledwindow: Consider shift key presses when decelerating [gtk3]
See merge request GNOME/gtk!287
-rw-r--r-- | gtk/gtkscrolledwindow.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 0d6b220952..cc7c439938 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -1321,7 +1321,8 @@ get_scroll_unit (GtkScrolledWindow *sw, static void scroll_history_push (GtkScrolledWindow *sw, - GdkEventScroll *event) + GdkEventScroll *event, + gboolean shifted) { GtkScrolledWindowPrivate *priv = sw->priv; ScrollHistoryElem new_item; @@ -1343,8 +1344,16 @@ scroll_history_push (GtkScrolledWindow *sw, if (i > 0) g_array_remove_range (priv->scroll_history, 0, i); - new_item.dx = event->delta_x; - new_item.dy = event->delta_y; + if (shifted) + { + new_item.dx = event->delta_y; + new_item.dy = event->delta_x; + } + else + { + new_item.dx = event->delta_x; + new_item.dy = event->delta_y; + } new_item.evtime = event->time; g_array_append_val (priv->scroll_history, new_item); } @@ -3481,7 +3490,7 @@ gtk_scrolled_window_scroll_event (GtkWidget *widget, scroll_history_reset (scrolled_window); } - scroll_history_push (scrolled_window, event); + scroll_history_push (scrolled_window, event, shifted); if (input_source == GDK_SOURCE_TRACKPOINT || input_source == GDK_SOURCE_TOUCHPAD) |