[maemo-commits] [maemo-commits] r9045 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Jan 10 19:05:20 EET 2007
Author: kris
Date: 2007-01-10 19:05:17 +0200 (Wed, 10 Jan 2007)
New Revision: 9045

Modified:
   projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktreemodelfilter.c
Log:
2007-01-10  Kristian Rietveld  <kris at imendio.com>

	* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_init),
	(gtk_tree_model_filter_finalize), (gtk_tree_model_filter_row_deleted),
	(gtk_tree_model_filter_new): port over change which unsets
	the virtual root once that row is being deleted.  (This change is
	in 2.11 upstream, but not in 2.10).



Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog	2007-01-10 16:02:01 UTC (rev 9044)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog	2007-01-10 17:05:17 UTC (rev 9045)
@@ -1,3 +1,11 @@
+2007-01-10  Kristian Rietveld  <kris at imendio.com>
+
+	* gtk/gtktreemodelfilter.c (gtk_tree_model_filter_init),
+	(gtk_tree_model_filter_finalize), (gtk_tree_model_filter_row_deleted),
+	(gtk_tree_model_filter_new): port over change which unsets
+	the virtual root once that row is being deleted.  (This change is
+	in 2.11 upstream, but not in 2.10).
+
 2007-01-10  Michael Natterer  <mitch at imendio.com>
 
 	* gtk/gtkmodules.c (find_module): open modules with

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktreemodelfilter.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktreemodelfilter.c	2007-01-10 16:02:01 UTC (rev 9044)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktreemodelfilter.c	2007-01-10 17:05:17 UTC (rev 9045)
@@ -105,6 +105,7 @@
   gboolean modify_func_set;
 
   gboolean in_row_deleted;
+  gboolean virtual_root_deleted;
 
   /* signal ids */
   guint changed_id;
@@ -290,6 +291,7 @@
   filter->priv->visible_method_set = FALSE;
   filter->priv->modify_func_set = FALSE;
   filter->priv->in_row_deleted = FALSE;
+  filter->priv->virtual_root_deleted = FALSE;
 }
 
 static void
@@ -359,8 +361,11 @@
 {
   GtkTreeModelFilter *filter = (GtkTreeModelFilter *) object;
 
-  if (filter->priv->virtual_root)
-    gtk_tree_model_filter_unref_path (filter, filter->priv->virtual_root);
+  if (filter->priv->virtual_root && !filter->priv->virtual_root_deleted)
+    {
+      gtk_tree_model_filter_unref_path (filter, filter->priv->virtual_root);
+      filter->priv->virtual_root_deleted = TRUE;
+    }
 
   gtk_tree_model_filter_set_model (filter, NULL);
 
@@ -1620,6 +1625,9 @@
       GtkTreePath *path;
       FilterLevel *level = FILTER_LEVEL (filter->priv->root);
 
+      gtk_tree_model_filter_unref_path (filter, filter->priv->virtual_root);
+      filter->priv->virtual_root_deleted = TRUE;
+
       if (!level)
         return;
 
@@ -2835,7 +2843,10 @@
 
   filter = GTK_TREE_MODEL_FILTER (retval);
   if (filter->priv->virtual_root)
-    gtk_tree_model_filter_ref_path (filter, filter->priv->virtual_root);
+    {
+      gtk_tree_model_filter_ref_path (filter, filter->priv->virtual_root);
+      filter->priv->virtual_root_deleted = FALSE;
+    }
 
   return retval;
 }


More information about the maemo-commits mailing list