From: Olof-Joachim Frahm Date: Sun, 5 Feb 2017 18:08:56 +0000 (+0100) Subject: Make sure to remove tooltip timeout. X-Git-Tag: archive/raspbian/3.24.39-1+rpi1~1^2~65^2~39^2~574 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c05c78f9c96341b211655bc652f569df0fb43bb1;p=gtk%2B3.0.git 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 --- 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); }