[gtk+/gtk-3-10] range: start autoscrolling near the edges of ranges



commit 5b9524f0f78dc13d2431abe62d1dcd97a73644f8
Author: William Jon McCann <william jon mccann gmail com>
Date:   Mon Oct 7 12:01:13 2013 -0400

    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.

 gtk/gtkrange.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index aff4ff3..092dd4b 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -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;
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]