[gtk+] scrolledwindow: Avoid too frequent redraws of scrollbars
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] scrolledwindow: Avoid too frequent redraws of scrollbars
- Date: Mon, 17 Nov 2014 16:19:56 +0000 (UTC)
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]