range: start autoscrolling near the edges of ranges

If a range goes all the way to the edge of the screen then we don't
have any way to activate autoscrolling. By adding a small region
at the ends of the range we can handle this case. This is the same
approach used in treeviews.
This commit is contained in:
William Jon McCann 2013-10-07 12:01:13 -04:00
parent 0280ef3413
commit 9fc3e59673

View File

@ -65,6 +65,7 @@
#define TIMEOUT_REPEAT 50
#define ZOOM_HOLD_TIME 500
#define AUTOSCROLL_FACTOR 20
#define SCROLL_EDGE_SIZE 15
typedef struct _GtkRangeStepTimer GtkRangeStepTimer;
@ -3052,9 +3053,9 @@ update_autoscroll_mode (GtkRange *range)
pos = range->priv->mouse_x;
}
if (pos < 0)
if (pos < SCROLL_EDGE_SIZE)
mode = GTK_SCROLL_STEP_BACKWARD;
else if (pos > size)
else if (pos > (size - SCROLL_EDGE_SIZE))
mode = GTK_SCROLL_STEP_FORWARD;
}