forked from AuroraMiddleware/gtk
scrolledwindow: reset more Indicator state on ::unmap
If a GtkScrolledWindow is just unmapped and promptly mapped again, the indicators are left in a semi-visible state, so the GdkWindow isn't raised properly above scrolledwindow content. This inconsistent state went away the next time the indicator is hidden. So, reset all state about indicator window visibility, animation progress and conceil timer on ::unmap, this will be enough to make the indicators start out hidden like on newly created scrolledwindows.
This commit is contained in:
parent
39f91d7cdb
commit
f00214e922
@ -3932,6 +3932,16 @@ indicator_stop_fade (Indicator *indicator)
|
||||
gtk_widget_remove_tick_callback (indicator->scrollbar, indicator->tick_id);
|
||||
indicator->tick_id = 0;
|
||||
}
|
||||
|
||||
if (indicator->conceil_timer)
|
||||
{
|
||||
g_source_remove (indicator->conceil_timer);
|
||||
indicator->conceil_timer = 0;
|
||||
}
|
||||
|
||||
gdk_window_hide (indicator->window);
|
||||
indicator->current_pos = indicator->source_pos = indicator->target_pos = 0;
|
||||
indicator->start_time = indicator->end_time = indicator->last_scroll_time = 0;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
Loading…
Reference in New Issue
Block a user