From f65915e01cac0e4794efd4d8e1bbcae861b0aab6 Mon Sep 17 00:00:00 2001 From: Viktor Odintsev Date: Fri, 17 Mar 2017 21:03:33 +0300 Subject: [PATCH] Avoid double free in panel plugins GtkMenu should no be destroyed manually when attached to GtkWidget. --- libxfce4panel/xfce-panel-plugin.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libxfce4panel/xfce-panel-plugin.c b/libxfce4panel/xfce-panel-plugin.c index e569e4a4..133f3f4a 100644 --- a/libxfce4panel/xfce-panel-plugin.c +++ b/libxfce4panel/xfce-panel-plugin.c @@ -915,7 +915,7 @@ xfce_panel_plugin_finalize (GObject *object) /* destroy the menu */ if (plugin->priv->menu != NULL) { - gtk_widget_destroy (GTK_WIDGET (plugin->priv->menu)); + /* attached menu is destroyed by GtkWidget */ panel_assert (plugin->priv->menu_items == NULL); } else @@ -1133,7 +1133,7 @@ xfce_panel_plugin_menu_destroy (XfcePanelPlugin *plugin) for (li = plugin->priv->menu_items; li != NULL; li = li->next) gtk_container_remove (GTK_CONTAINER (plugin->priv->menu), GTK_WIDGET (li->data)); - gtk_widget_destroy (GTK_WIDGET (plugin->priv->menu)); + gtk_menu_detach (GTK_MENU (plugin->priv->menu)); plugin->priv->menu = NULL; } } -- 2.12.0