[gtk+] scrolledwindow: Avoid too frequent redraws of scrollbars



commit 76510619206ae8233ed49b379343b689a8028920
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon Nov 17 16:55:08 2014 +0100

    scrolledwindow: Avoid too frequent redraws of scrollbars
    
    When overshooting through touchpad kinetic scrolling, the scrollbar remains
    mostly static as it already hit a boundary. However, the fade in/out checks
    are constantly run during scroll events, causing needless redraws in this
    specific case.

 gtk/gtkscrolledwindow.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index 3d33d60..86a53d7 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -3387,7 +3387,9 @@ static void
 indicator_set_fade (Indicator *indicator,
                     gdouble    pos)
 {
-  gboolean visible;
+  gboolean visible, changed;
+
+  changed = indicator->current_pos != pos;
   indicator->current_pos = pos;
 
   visible = indicator->current_pos != 0.0 || indicator->target_pos != 0.0;
@@ -3404,8 +3406,11 @@ indicator_set_fade (Indicator *indicator,
       indicator->conceil_timer = 0;
     }
 
-  gtk_widget_set_opacity (indicator->scrollbar, indicator->current_pos);
-  gtk_widget_queue_draw (indicator->scrollbar);
+  if (changed)
+    {
+      gtk_widget_set_opacity (indicator->scrollbar, indicator->current_pos);
+      gtk_widget_queue_draw (indicator->scrollbar);
+    }
 }
 
 static double


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