Commit 9fde44ac authored by Matthias Clasen's avatar Matthias Clasen

Fine-tune the proximity hovering for scrollbars

Reduce the distance at which we expand the scrollbar,
and add some hysteresis.
parent ff2390f5
......@@ -157,7 +157,8 @@
#define INDICATOR_FADE_OUT_DELAY 2000
#define INDICATOR_FADE_OUT_DURATION 1000
#define INDICATOR_FADE_OUT_TIME 500
#define INDICATOR_CLOSE_DISTANCE 50
#define INDICATOR_CLOSE_DISTANCE 10
#define INDICATOR_FAR_DISTANCE 20
/* Scrolled off indication */
#define UNDERSHOOT_SIZE 40
......@@ -966,6 +967,7 @@ event_close_to_indicator (GtkScrolledWindow *sw,
GtkWidget *event_widget;
gint win_x, win_y;
gdouble x, y;
gint distance;
priv = sw->priv;
event_widget = gtk_get_event_widget (event);
......@@ -988,12 +990,17 @@ event_close_to_indicator (GtkScrolledWindow *sw,
y = ycoord;
}
if (indicator->over)
distance = INDICATOR_FAR_DISTANCE;
else
distance = INDICATOR_CLOSE_DISTANCE;
if ((indicator == &priv->hindicator &&
y >= win_y - INDICATOR_CLOSE_DISTANCE &&
y < win_y + indicator_alloc.height + INDICATOR_CLOSE_DISTANCE) ||
y >= win_y - distance &&
y < win_y + indicator_alloc.height + distance) ||
(indicator == &priv->vindicator &&
x >= win_x - INDICATOR_CLOSE_DISTANCE &&
x < win_x + indicator_alloc.width + INDICATOR_CLOSE_DISTANCE))
x >= win_x - distance &&
x < win_x + indicator_alloc.width + distance))
return TRUE;
return FALSE;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment