From 75cac966f467d8bd8c7ecddfd6ced39f0349eaac Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 27 Jul 2007 14:39:15 +0000 Subject: Potentially better scrollbar patch git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2241 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../gtk+/gtk+-2.10.12/range-no-redraw.patch | 50 ++++++++++++++++------ meta/packages/gtk+/gtk+_2.6.10.bb | 2 +- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/meta/packages/gtk+/gtk+-2.10.12/range-no-redraw.patch b/meta/packages/gtk+/gtk+-2.10.12/range-no-redraw.patch index 384d71b4fe..e3603d7700 100644 --- a/meta/packages/gtk+/gtk+-2.10.12/range-no-redraw.patch +++ b/meta/packages/gtk+/gtk+-2.10.12/range-no-redraw.patch @@ -2,16 +2,40 @@ Index: gtk/gtkrange.c =================================================================== --- gtk/gtkrange.c (revision 18523) +++ gtk/gtkrange.c (working copy) -@@ -1979,8 +1979,12 @@ - gtk_widget_queue_draw (GTK_WIDGET (range)); - - /* This is so we don't lag the widget being scrolled. */ -+#if 0 -+ /* Disable this, the scroll bar lags a bit but the end result is that -+ scrolling treeviews is *a lot* smoother. See GNOME #460534. */ - if (GTK_WIDGET_REALIZED (range)) - gdk_window_process_updates (GTK_WIDGET (range)->window, FALSE); -+#endif - } - - /* Note that we don't round off to range->round_digits here. +@@ -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; diff --git a/meta/packages/gtk+/gtk+_2.6.10.bb b/meta/packages/gtk+/gtk+_2.6.10.bb index d7199ef1dd..de22bbae75 100644 --- a/meta/packages/gtk+/gtk+_2.6.10.bb +++ b/meta/packages/gtk+/gtk+_2.6.10.bb @@ -1,6 +1,6 @@ require gtk+.inc -PR = "r12" +PR = "r13" SRC_URI = "ftp://ftp.gtk.org/pub/gtk/v2.6/gtk+-${PV}.tar.bz2 \ file://no-demos.patch;patch=1 \ -- cgit v1.2.3-54-g00ecf