summaryrefslogtreecommitdiff
path: root/gladeui/glade-inspector.c
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2010-10-12 17:53:14 +0900
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2010-10-12 17:53:14 +0900
commit305e44f087b2f79eae5dd109f7af3123d3ef43ca (patch)
tree049056ca9dc216e1e2dc6537c93dfa04bee608f0 /gladeui/glade-inspector.c
parentf671dd07b9d255b3d6a71773f1fe047c1f86b660 (diff)
parent0b6f713fbbddbc51c556418b3145b6c46a5df23c (diff)
downloadglade-305e44f087b2f79eae5dd109f7af3123d3ef43ca.tar.gz
Merge branch 'master' into offscreen
Diffstat (limited to 'gladeui/glade-inspector.c')
-rw-r--r--gladeui/glade-inspector.c22
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);
}