[Xfce4-commits] r24715 - squeeze/trunk/src

Stephan Arts stephan at xfce.org
Wed Jan 24 08:47:28 CET 2007


Author: stephan
Date: 2007-01-24 07:47:27 +0000 (Wed, 24 Jan 2007)
New Revision: 24715

Modified:
   squeeze/trunk/src/notebook.c
   squeeze/trunk/src/widget_factory.c
Log:
fixed bug where archive_store does not exist when refresh is completed early (like what happends with bare .gz archives)

Modified: squeeze/trunk/src/notebook.c
===================================================================
--- squeeze/trunk/src/notebook.c	2007-01-23 23:25:57 UTC (rev 24714)
+++ squeeze/trunk/src/notebook.c	2007-01-24 07:47:27 UTC (rev 24715)
@@ -635,13 +635,20 @@
 cb_notebook_archive_refreshed(LSQArchive *archive, GtkTreeView *treeview)
 {
 	GtkTreeModel *archive_store = gtk_tree_view_get_model(treeview);
-	g_object_ref(archive_store);
-	gtk_tree_view_set_model(treeview, NULL);
-	sq_archive_store_set_archive(SQ_ARCHIVE_STORE(archive_store), archive);
-	gtk_tree_view_set_model(treeview, archive_store);
-	g_object_unref(archive_store);
+	/* 
+	 * Some archives are done refreshing so fast there is not even an
+	 * archive store to accomodate them.
+	 */
+	if(archive_store)
+	{
+		g_object_ref(archive_store);
+		gtk_tree_view_set_model(treeview, NULL);
+		sq_archive_store_set_archive(SQ_ARCHIVE_STORE(archive_store), archive);
+		gtk_tree_view_set_model(treeview, archive_store);
+		g_object_unref(archive_store);
+		sq_notebook_treeview_reset_columns(archive, treeview);
+	}
 
-	sq_notebook_treeview_reset_columns(archive, treeview);
 }
 
 static void

Modified: squeeze/trunk/src/widget_factory.c
===================================================================
--- squeeze/trunk/src/widget_factory.c	2007-01-23 23:25:57 UTC (rev 24714)
+++ squeeze/trunk/src/widget_factory.c	2007-01-24 07:47:27 UTC (rev 24715)
@@ -133,7 +133,7 @@
 	g_object_set_data(G_OBJECT(check), SQ_PROPERTY_SPEC_DATA, pspec);
 	g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(cb_sq_widget_factory_property_changed), obj);
 	g_signal_connect(obj, "notify", G_CALLBACK(cb_sq_widget_factory_property_notify), check);
-	g_signal_connect(GTK_OBJECT(check), "dispose", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
+	g_signal_connect(GTK_OBJECT(check), "destroy", G_CALLBACK(cb_sq_widget_factory_widget_destroyed), obj);
 
 	const gchar *large_tip = g_param_spec_get_blurb(pspec);
 	gchar *small_tip = NULL;
@@ -995,6 +995,7 @@
 static void
 cb_sq_widget_factory_widget_destroyed(GtkObject *obj, gpointer user_data)
 {
+	/* FIXME: broken on shutdown */
 	if(user_data)
 	{
 		g_signal_handlers_disconnect_by_func(user_data, cb_sq_widget_factory_property_notify, obj);



More information about the Xfce4-commits mailing list