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.
This commit is contained in:
@ -3387,7 +3387,9 @@ static void
|
|||||||
indicator_set_fade (Indicator *indicator,
|
indicator_set_fade (Indicator *indicator,
|
||||||
gdouble pos)
|
gdouble pos)
|
||||||
{
|
{
|
||||||
gboolean visible;
|
gboolean visible, changed;
|
||||||
|
|
||||||
|
changed = indicator->current_pos != pos;
|
||||||
indicator->current_pos = pos;
|
indicator->current_pos = pos;
|
||||||
|
|
||||||
visible = indicator->current_pos != 0.0 || indicator->target_pos != 0.0;
|
visible = indicator->current_pos != 0.0 || indicator->target_pos != 0.0;
|
||||||
@ -3404,8 +3406,11 @@ indicator_set_fade (Indicator *indicator,
|
|||||||
indicator->conceil_timer = 0;
|
indicator->conceil_timer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_widget_set_opacity (indicator->scrollbar, indicator->current_pos);
|
if (changed)
|
||||||
gtk_widget_queue_draw (indicator->scrollbar);
|
{
|
||||||
|
gtk_widget_set_opacity (indicator->scrollbar, indicator->current_pos);
|
||||||
|
gtk_widget_queue_draw (indicator->scrollbar);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static double
|
static double
|
||||||
|
|||||||
Reference in New Issue
Block a user