From c05c78f9c96341b211655bc652f569df0fb43bb1 Mon Sep 17 00:00:00 2001 From: Olof-Joachim Frahm Date: Sun, 5 Feb 2017 19:08:56 +0100 Subject: [PATCH] Make sure to remove tooltip timeout. Otherwise in GC-ed environments the `g_source_remove` call during disposal might be called on an already removed source, which results in unnecessary console output. https://bugzilla.gnome.org/show_bug.cgi?id=778301 --- gtk/gtktooltip.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c index 19a496337e..84ed9fdeed 100644 --- a/gtk/gtktooltip.c +++ b/gtk/gtktooltip.c @@ -761,6 +761,12 @@ tooltip_browse_mode_expired (gpointer data) tooltip->browse_mode_enabled = FALSE; tooltip->browse_mode_timeout_id = 0; + if (tooltip->timeout_id) + { + g_source_remove (tooltip->timeout_id); + tooltip->timeout_id = 0; + } + /* destroy tooltip */ display = gtk_widget_get_display (tooltip->window); g_object_set_qdata (G_OBJECT (display), quark_current_tooltip, NULL); @@ -773,6 +779,12 @@ gtk_tooltip_display_closed (GdkDisplay *display, gboolean was_error, GtkTooltip *tooltip) { + if (tooltip->timeout_id) + { + g_source_remove (tooltip->timeout_id); + tooltip->timeout_id = 0; + } + g_object_set_qdata (G_OBJECT (display), quark_current_tooltip, NULL); }