From 11eb64a2b69f02d916d0448065a5108ad106f30c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 9 Jan 2015 21:09:22 -0500 Subject: [PATCH] GtkScrolledWindow: Don't require proximity for track points These are hard to navigate precisely, so show wide scrollbars right away. --- gtk/gtkscrolledwindow.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 9c709bcd41..f4e85fd990 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -440,7 +440,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) class->scroll_child = gtk_scrolled_window_scroll_child; class->move_focus_out = gtk_scrolled_window_move_focus_out; - + g_object_class_install_property (gobject_class, PROP_HADJUSTMENT, g_param_spec_object ("hadjustment", @@ -1040,7 +1040,6 @@ captured_event_cb (GtkWidget *widget, GtkScrolledWindow *sw; GdkInputSource input_source; GdkDevice *source_device; - gboolean indicator_close; sw = GTK_SCROLLED_WINDOW (widget); priv = sw->priv; @@ -1064,17 +1063,18 @@ captured_event_cb (GtkWidget *widget, indicator_start_fade (&priv->hindicator, 1.0); indicator_start_fade (&priv->vindicator, 1.0); - /* Check whether we're hovering close to the vertical scrollbar */ - indicator_close = check_update_scrollbar_proximity (sw, &priv->vindicator, - event); - - if (!indicator_close) + if (strstr (gdk_device_get_name (source_device), "TrackPoint")) { - /* Otherwise check the horizontal scrollbar */ - check_update_scrollbar_proximity (sw, &priv->hindicator, event); + indicator_set_over (&priv->hindicator, TRUE); + indicator_set_over (&priv->vindicator, TRUE); } else - indicator_set_over (&priv->hindicator, FALSE); + { + if (!check_update_scrollbar_proximity (sw, &priv->vindicator, event)) + check_update_scrollbar_proximity (sw, &priv->hindicator, event); + else + indicator_set_over (&priv->hindicator, FALSE); + } } else if (event->type == GDK_LEAVE_NOTIFY && event->crossing.mode == GDK_CROSSING_UNGRAB)