diff options
Diffstat (limited to 'packages/gtk+/gtk+-2.10.14/range-no-redraw.patch')
-rw-r--r-- | packages/gtk+/gtk+-2.10.14/range-no-redraw.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/packages/gtk+/gtk+-2.10.14/range-no-redraw.patch b/packages/gtk+/gtk+-2.10.14/range-no-redraw.patch new file mode 100644 index 0000000000..e3603d7700 --- /dev/null +++ b/packages/gtk+/gtk+-2.10.14/range-no-redraw.patch @@ -0,0 +1,41 @@ +Index: gtk/gtkrange.c +=================================================================== +--- gtk/gtkrange.c (revision 18523) ++++ gtk/gtkrange.c (working copy) +@@ -99,6 +99,8 @@ + + GtkSensitivityType lower_sensitivity; + GtkSensitivityType upper_sensitivity; ++ ++ guint motion_idle; + }; + + +@@ -1721,6 +1723,16 @@ + &handled); + } + ++static gboolean ++update_slider_position_idle (GtkRange *range) ++{ ++ update_slider_position (range, range->layout->mouse_x,range->layout->mouse_y); ++ ++ range->layout->motion_idle = 0; ++ ++ return FALSE; ++} ++ + static void + stop_scrolling (GtkRange *range) + { +@@ -1860,8 +1872,8 @@ + if (gtk_range_update_mouse_location (range)) + gtk_widget_queue_draw (widget); + +- if (range->layout->grab_location == MOUSE_SLIDER) +- update_slider_position (range, x, y); ++ if (range->layout->grab_location == MOUSE_SLIDER && !range->layout->motion_idle) ++ range->layout->motion_idle = g_idle_add ((GSourceFunc)update_slider_position_idle, range); + + /* We handled the event if the mouse was in the range_rect */ + return range->layout->mouse_location != MOUSE_OUTSIDE; |