forked from AuroraMiddleware/gtk
inspector: Remove flash timeout from widgets being unmapped
Otherwise the timeout can keep running, even if the widget is being destroyed.
This commit is contained in:
parent
b4b23580a6
commit
70e7b4c848
@ -191,6 +191,7 @@ clear_flash (GtkInspectorWindow *iw)
|
||||
{
|
||||
gtk_widget_queue_draw (iw->flash_widget);
|
||||
g_signal_handlers_disconnect_by_func (iw->flash_widget, draw_flash, iw);
|
||||
g_signal_handlers_disconnect_by_func (iw->flash_widget, clear_flash, iw);
|
||||
iw->flash_widget = NULL;
|
||||
}
|
||||
}
|
||||
@ -204,6 +205,7 @@ start_flash (GtkInspectorWindow *iw,
|
||||
iw->flash_count = 1;
|
||||
iw->flash_widget = widget;
|
||||
g_signal_connect_after (widget, "draw", G_CALLBACK (draw_flash), iw);
|
||||
g_signal_connect_swapped (widget, "unmap", G_CALLBACK (clear_flash), iw);
|
||||
gtk_widget_queue_draw (widget);
|
||||
}
|
||||
|
||||
@ -434,6 +436,7 @@ on_flash_timeout (GtkInspectorWindow *iw)
|
||||
if (iw->flash_count == 6)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (iw->flash_widget, draw_flash, iw);
|
||||
g_signal_handlers_disconnect_by_func (iw->flash_widget, clear_flash, iw);
|
||||
iw->flash_widget = NULL;
|
||||
iw->flash_cnx = 0;
|
||||
|
||||
@ -471,6 +474,7 @@ void
|
||||
gtk_inspector_stop_highlight (GtkWidget *widget)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func (widget, draw_flash, NULL);
|
||||
g_signal_handlers_disconnect_by_func (widget, clear_flash, NULL);
|
||||
gtk_widget_queue_draw (widget);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user