[gnome-builder] project-tree: disconnect signal during cleanup



commit 322f76fefb5cceae3ec92069a4c2bbeb870b6d11
Author: Christian Hergert <chergert redhat com>
Date:   Fri May 20 12:17:51 2016 +0300

    project-tree: disconnect signal during cleanup
    
    Not really necessary, but good form.

 plugins/project-tree/gb-project-tree-addin.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/plugins/project-tree/gb-project-tree-addin.c b/plugins/project-tree/gb-project-tree-addin.c
index 6c93dfe..87a9177 100644
--- a/plugins/project-tree/gb-project-tree-addin.c
+++ b/plugins/project-tree/gb-project-tree-addin.c
@@ -97,6 +97,7 @@ gb_project_tree_addin_load (IdeWorkbenchAddin *addin,
                              "headers-visible", FALSE,
                              "visible", TRUE,
                              NULL);
+  g_object_add_weak_pointer (G_OBJECT (self->tree), (gpointer *)&self->tree);
   gtk_container_add (GTK_CONTAINER (scroller), GTK_WIDGET (self->tree));
 
   self->panel = g_object_new (PNL_TYPE_DOCK_WIDGET,
@@ -121,6 +122,15 @@ gb_project_tree_addin_unload (IdeWorkbenchAddin *addin,
   g_assert (IDE_IS_WORKBENCH_ADDIN (self));
   g_assert (IDE_IS_WORKBENCH (workbench));
 
+  if (self->tree != NULL)
+    {
+      g_signal_handlers_disconnect_by_func (self->tree,
+                                            G_CALLBACK (gb_project_tree_addin_grid_empty),
+                                            self);
+      g_object_remove_weak_pointer (G_OBJECT (self->tree), (gpointer *)&self->tree);
+      self->tree = NULL;
+    }
+
   gtk_widget_destroy (self->panel);
   self->panel = NULL;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]