[gtk: 1/2] gtkscrolledwindow: Consider shift key presses when decelerating
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 1/2] gtkscrolledwindow: Consider shift key presses when decelerating
- Date: Mon, 20 Aug 2018 18:30:30 +0000 (UTC)
commit 14b21d78db1c236ebf958fcc8fa4446ac2bb1149
Author: Sebastian Keller <sebastian-keller gmx de>
Date: Sat Aug 4 16:24:33 2018 +0200
gtkscrolledwindow: Consider shift key presses when decelerating
Otherwise horizontal scrolling using the shift key would decelerate
vertically.
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/770
gtk/gtkscrolledwindow.c | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index 90d7b2fdfe..68e048c929 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -1341,12 +1341,29 @@ scroll_controller_decelerate (GtkEventControllerScroll *scroll,
GtkScrolledWindow *scrolled_window)
{
gdouble unit_x, unit_y;
+ gboolean shifted;
+ GdkModifierType state;
+
+ if (!gtk_get_current_event_state (&state))
+ return;
+
+ shifted = (state & GDK_SHIFT_MASK) != 0;
unit_x = get_scroll_unit (scrolled_window, GTK_ORIENTATION_HORIZONTAL);
unit_y = get_scroll_unit (scrolled_window, GTK_ORIENTATION_VERTICAL);
- gtk_scrolled_window_decelerate (scrolled_window,
- initial_vel_x * unit_x,
- initial_vel_y * unit_y);
+
+ if (shifted)
+ {
+ gtk_scrolled_window_decelerate (scrolled_window,
+ initial_vel_y * unit_x,
+ initial_vel_x * unit_y);
+ }
+ else
+ {
+ gtk_scrolled_window_decelerate (scrolled_window,
+ initial_vel_x * unit_x,
+ initial_vel_y * unit_y);
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]