summaryrefslogtreecommitdiff
path: root/gtk/gtkfilesystemmodel.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@novell.com>2009-09-10 17:22:12 -0500
committerBenjamin Otte <otte@gnome.org>2009-10-15 22:06:17 +0200
commit7e9fbd16e4b712967d8780ad3c5c497e02f25962 (patch)
treeeb6ade2ed1f96c0403755bb6b30a27894df7e041 /gtk/gtkfilesystemmodel.c
parentfb1a72fcb005a14b004eaae6912abd5232713a80 (diff)
downloadgtk+-7e9fbd16e4b712967d8780ad3c5c497e02f25962.tar.gz
In set_filter(), handle the case where the new filter is the same as the old filter
Signed-off-by: Federico Mena Quintero <federico@novell.com>
Diffstat (limited to 'gtk/gtkfilesystemmodel.c')
-rw-r--r--gtk/gtkfilesystemmodel.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gtk/gtkfilesystemmodel.c b/gtk/gtkfilesystemmodel.c
index e10babcb0c..4c90fe2aca 100644
--- a/gtk/gtkfilesystemmodel.c
+++ b/gtk/gtkfilesystemmodel.c
@@ -1809,15 +1809,20 @@ void
_gtk_file_system_model_set_filter (GtkFileSystemModel *model,
GtkFileFilter * filter)
{
+ GtkFileFilter *old_filter;
+
g_return_if_fail (GTK_IS_FILE_SYSTEM_MODEL (model));
g_return_if_fail (filter == NULL || GTK_IS_FILE_FILTER (filter));
if (filter)
g_object_ref (filter);
- if (model->filter)
- g_object_unref (model->filter);
+
+ old_filter = model->filter;
model->filter = filter;
+ if (old_filter)
+ g_object_unref (old_filter);
+
gtk_file_system_model_refilter_all (model);
}