If you delete the last log for a month, delete the month header as well.

Mon, 05 Feb 2007 03:37:10 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Mon, 05 Feb 2007 03:37:10 +0000
changeset 15613
9a6ec23fe078
parent 15612
5de26d19e4e5
child 15625
fb910d97fe29

If you delete the last log for a month, delete the month header as well.

pidgin/gtklog.c file | annotate | diff | comparison | revisions
--- a/pidgin/gtklog.c	Mon Feb 05 03:06:25 2007 +0000
+++ b/pidgin/gtklog.c	Mon Feb 05 03:37:10 2007 +0000
@@ -220,7 +220,22 @@
 	}
 	else
 	{
-		gtk_tree_store_remove((GtkTreeStore *)data[0], (GtkTreeIter *)data[1]);
+		GtkTreeStore *treestore = data[0];
+		GtkTreeIter *iter = (GtkTreeIter *)data[1];
+		GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), iter);
+		gboolean first = !gtk_tree_path_prev(path);
+
+		if (!gtk_tree_store_remove(treestore, iter) && first)
+		{
+			/* iter was the last child at its level */
+
+			if (gtk_tree_path_up(path))
+			{
+				gtk_tree_model_get_iter(GTK_TREE_MODEL(treestore), iter, path);
+				gtk_tree_store_remove(treestore, iter);
+			}
+		}
+		gtk_tree_path_free(path);
 	}
 
 	delete_log_cleanup_cb(data);

mercurial