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:
Carlos Garnacho 2015-05-22 20:52:17 +02:00
parent 39f91d7cdb
commit f00214e922

View File

@ -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