diff options
author | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2010-10-12 17:53:14 +0900 |
---|---|---|
committer | Tristan Van Berkom <tristan.van.berkom@gmail.com> | 2010-10-12 17:53:14 +0900 |
commit | 305e44f087b2f79eae5dd109f7af3123d3ef43ca (patch) | |
tree | 049056ca9dc216e1e2dc6537c93dfa04bee608f0 /gladeui/glade-inspector.c | |
parent | f671dd07b9d255b3d6a71773f1fe047c1f86b660 (diff) | |
parent | 0b6f713fbbddbc51c556418b3145b6c46a5df23c (diff) | |
download | glade-305e44f087b2f79eae5dd109f7af3123d3ef43ca.tar.gz |
Merge branch 'master' into offscreen
Diffstat (limited to 'gladeui/glade-inspector.c')
-rw-r--r-- | gladeui/glade-inspector.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/gladeui/glade-inspector.c b/gladeui/glade-inspector.c index a4781bc7..b86c994c 100644 --- a/gladeui/glade-inspector.c +++ b/gladeui/glade-inspector.c @@ -500,14 +500,9 @@ static void glade_inspector_dispose (GObject *object) { GladeInspector *inspector = GLADE_INSPECTOR(object); - GladeInspectorPrivate *priv = inspector->priv; - - if (priv->project) - { - g_object_unref (priv->project); - priv->project = NULL; - } + glade_inspector_set_project (inspector, NULL); + G_OBJECT_CLASS (glade_inspector_parent_class)->dispose (object); } @@ -790,23 +785,28 @@ glade_inspector_set_project (GladeInspector *inspector, if (inspector->priv->project) { - disconnect_project_signals (inspector, project); - g_object_unref (priv->project); + disconnect_project_signals (inspector, inspector->priv->project); + + /* Release our filter which releases the project */ + gtk_tree_view_set_model (GTK_TREE_VIEW (priv->view), NULL); + priv->filter = NULL; priv->project = NULL; } if (project) { priv->project = project; - g_object_ref (priv->project); - priv->filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (priv->project), NULL); + /* The filter holds our reference to 'project' */ + priv->filter = gtk_tree_model_filter_new (GTK_TREE_MODEL (priv->project), NULL); gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (priv->filter), (GtkTreeModelFilterVisibleFunc)glade_inspector_visible_func, inspector, NULL); gtk_tree_view_set_model (GTK_TREE_VIEW (priv->view), priv->filter); + g_object_unref (priv->filter); /* pass ownership of the filter to the model */ + connect_project_signals (inspector, project); } |