[Xfce4-commits] r24700 - in squeeze/trunk: . src

Stephan Arts stephan at xfce.org
Mon Jan 22 21:44:40 CET 2007


Author: stephan
Date: 2007-01-22 20:44:40 +0000 (Mon, 22 Jan 2007)
New Revision: 24700

Modified:
   squeeze/trunk/configure.in.in
   squeeze/trunk/src/archive_store.c
   squeeze/trunk/src/main_window.c
   squeeze/trunk/src/navigation_bar.c
   squeeze/trunk/src/notebook.c
   squeeze/trunk/src/widget_factory.c
Log:
fixed some reference counting issues and release compile thingies

Modified: squeeze/trunk/configure.in.in
===================================================================
--- squeeze/trunk/configure.in.in	2007-01-22 19:38:05 UTC (rev 24699)
+++ squeeze/trunk/configure.in.in	2007-01-22 20:44:40 UTC (rev 24700)
@@ -14,15 +14,15 @@
 m4_define([squeeze_version_major], [0])
 m4_define([squeeze_version_minor], [0])
 m4_define([squeeze_version_micro], [1])
-m4_define([squeeze_version_nano], []) # Leave empty for no nano version
+m4_define([squeeze_version_nano], [svn]) # Leave empty for no nano version
 m4_define([squeeze_version_build], [r at REVISION@])
-m4_define([squeeze_version_tag], [svn]) # Leave empty for releases
+m4_define([squeeze_version_tag], []) # Leave empty for releases
 m4_define([squeeze_version], [ifelse(squeeze_version_branch(), [], [squeeze_version_major().squeeze_version_minor().squeeze_version_micro()ifelse(squeeze_version_nano(), [], [], [.squeeze_version_nano()])], [squeeze_version_branch()])ifelse(squeeze_version_tag(),[],[], [-ifelse(squeeze_version_tag(), [svn], [squeeze_version_tag()-squeeze_version_build()], [squeeze_version_tag()])])])
 
 dnl *******************************************
 dnl *** Debugging support for SVN snapshots ***
 dnl *******************************************
-m4_define([squeeze_debug_default], [ifelse(squeeze_version_tag(), [svn], [full], [minimum])])
+m4_define([squeeze_debug_default], [ifelse(squeeze_version_tag(), [svn], [full], [no])])
 
 AC_COPYRIGHT([Copyright (c) 2006
         The Xfce development team. All rights reserved.

Modified: squeeze/trunk/src/archive_store.c
===================================================================
--- squeeze/trunk/src/archive_store.c	2007-01-22 19:38:05 UTC (rev 24699)
+++ squeeze/trunk/src/archive_store.c	2007-01-22 20:44:40 UTC (rev 24700)
@@ -43,7 +43,7 @@
 sq_archive_tree_sortable_init(GtkTreeSortableIface *ts_interface);
 
 static void
-sq_archive_store_finalize(GObject *object);
+sq_archive_store_dispose(GObject *object);
 
 /* properties */
 enum {
@@ -236,7 +236,7 @@
 
 	object_class->set_property = sq_archive_store_set_property;
 	object_class->get_property = sq_archive_store_get_property;
-	object_class->finalize = sq_archive_store_finalize;
+	object_class->dispose = sq_archive_store_dispose;
 
 	pspec = g_param_spec_boolean("show-icons",
 		_("Show mime icons"),
@@ -537,6 +537,8 @@
 	g_return_val_if_fail(SQ_IS_ARCHIVE_STORE(tree_model), FALSE);
 	
 	SQArchiveStore *store = SQ_ARCHIVE_STORE(tree_model);
+	if(iter->stamp != store->stamp)
+		return FALSE;
 
 	LSQArchiveIter *entry = (LSQArchiveIter*)iter->user_data2;
 	gint pos = GPOINTER_TO_INT(iter->user_data3);
@@ -1678,9 +1680,12 @@
 }
 
 static void
-sq_archive_store_finalize(GObject *object)
+sq_archive_store_dispose(GObject *object)
 {
 	SQArchiveStore *store = SQ_ARCHIVE_STORE(object);
 	if(store->archive)
+	{
 		g_object_unref(store->archive);
+		store->archive = NULL;
+	}
 }

Modified: squeeze/trunk/src/main_window.c
===================================================================
--- squeeze/trunk/src/main_window.c	2007-01-22 19:38:05 UTC (rev 24699)
+++ squeeze/trunk/src/main_window.c	2007-01-22 20:44:40 UTC (rev 24700)
@@ -81,6 +81,8 @@
 sq_main_window_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
 static void
 sq_main_window_finalize(GObject *object);
+static void
+sq_main_window_dispose(GObject *object);
 
 
 static void cb_sq_main_new_archive(GtkWidget *widget, gpointer userdata);
@@ -110,6 +112,8 @@
 static void
 sq_main_window_set_navigation(SQMainWindow *window);
 
+static GObjectClass *parent_class;
+
 GType
 sq_main_window_navigation_style_get_type()
 {
@@ -169,9 +173,12 @@
 	GObjectClass *object_class = G_OBJECT_CLASS (window_class);
 	GParamSpec *pspec = NULL;
 
+	parent_class = gtk_type_class (GTK_TYPE_WINDOW);
+
 	object_class->set_property = sq_main_window_set_property;
 	object_class->get_property = sq_main_window_get_property;
 	object_class->finalize     = sq_main_window_finalize;
+	object_class->dispose     = sq_main_window_dispose;
 
 	pspec = g_param_spec_enum("navigation-style",
 		_("Navigation Style"),
@@ -186,46 +193,69 @@
 }
 
 static void
-sq_main_window_finalize(GObject *object)
+sq_main_window_dispose(GObject *object)
 {
 	SQMainWindow *window = SQ_MAIN_WINDOW(object);
 
+	if(window->main_vbox && window->notebook)
+	{
+		gtk_container_remove(GTK_CONTAINER(window->main_vbox), GTK_WIDGET(window->notebook));
+		window->notebook = NULL;
+	}
 
-	sq_settings_set_group(window->settings, "Global");
-	if(window->menu_bar)
-		sq_settings_write_bool_entry(window->settings, "MenuBar", TRUE);
-	else
-		sq_settings_write_bool_entry(window->settings, "MenuBar", FALSE);
+	if(window->settings)
+	{
+		sq_settings_set_group(window->settings, "Global");
+		if(window->menu_bar)
+			sq_settings_write_bool_entry(window->settings, "MenuBar", TRUE);
+		else
+			sq_settings_write_bool_entry(window->settings, "MenuBar", FALSE);
 
-	if(!window->navigationbar)
-	{
-		sq_settings_write_entry(window->settings, "NavigationBar", "None");
+		if(!window->navigationbar)
+		{
+			sq_settings_write_entry(window->settings, "NavigationBar", "None");
+		}
+	#ifdef ENABLE_TOOLBAR
+		else if(SQ_IS_TOOL_BAR(window->navigationbar))
+		{
+			sq_settings_write_entry(window->settings, "NavigationBar", "ToolBar");
+		}	
+	#endif
+	#ifdef ENABLE_PATHBAR
+		else if(SQ_IS_PATH_BAR(window->navigationbar))
+		{
+			sq_settings_write_entry(window->settings, "NavigationBar", "PathBar");
+		}
+	#endif
+		else
+		{
+			sq_settings_write_entry(window->settings, "NavigationBar", "None");
+		}
+
+		sq_settings_save(window->settings);
+
+		g_object_unref(G_OBJECT(window->settings));
+		window->settings = NULL;
 	}
-#ifdef ENABLE_TOOLBAR
-	else if(SQ_IS_TOOL_BAR(window->navigationbar))
+
+	if(window->main_vbox && window->navigationbar)
 	{
-		sq_settings_write_entry(window->settings, "NavigationBar", "ToolBar");
-	}	
-#endif
-#ifdef ENABLE_PATHBAR
-	else if(SQ_IS_PATH_BAR(window->navigationbar))
-	{
-		sq_settings_write_entry(window->settings, "NavigationBar", "PathBar");
+		gtk_container_remove(GTK_CONTAINER(window->main_vbox), GTK_WIDGET(window->navigationbar));
+		window->navigationbar = NULL;
 	}
-#endif
-	else
+	if(window->app)
 	{
-		sq_settings_write_entry(window->settings, "NavigationBar", "None");
+		g_object_unref(G_OBJECT(window->app));
+		window->app = NULL;
 	}
+	
+	parent_class->dispose(object);
+}
 
-	sq_settings_save(window->settings);
-
-	g_object_unref(G_OBJECT(window->settings));
-
-	//if(window->navigationbar)
-	//	gtk_widget_destroy(GTK_WIDGET(window->navigationbar));
-
-	g_object_unref(G_OBJECT(window->app));
+static void
+sq_main_window_finalize(GObject *object)
+{
+	parent_class->finalize(object);
 }
 
 static void

Modified: squeeze/trunk/src/navigation_bar.c
===================================================================
--- squeeze/trunk/src/navigation_bar.c	2007-01-22 19:38:05 UTC (rev 24699)
+++ squeeze/trunk/src/navigation_bar.c	2007-01-22 20:44:40 UTC (rev 24700)
@@ -32,7 +32,7 @@
 static void
 sq_navigation_bar_init(SQNavigationBar *archive);
 static void
-sq_navigation_bar_finalize(GObject *object);
+sq_navigation_bar_dispose(GObject *object);
 
 static void
 cb_sq_navigation_bar_pwd_changed(SQArchiveStore *store, SQNavigationBar *bar);
@@ -45,6 +45,8 @@
 	SQ_NAVIGATION_BAR_NAV_HISTORY = 1
 };
 
+static GObjectClass *parent_class;
+
 GType
 sq_navigation_bar_get_type ()
 {
@@ -76,7 +78,9 @@
 {
 	GObjectClass *object_class = G_OBJECT_CLASS (navigation_bar_class);
 
-	object_class->finalize     = sq_navigation_bar_finalize;
+	parent_class = gtk_type_class (GTK_TYPE_CONTAINER);
+
+	object_class->dispose     = sq_navigation_bar_dispose;
 }
 
 static void
@@ -90,7 +94,7 @@
 }
 
 static void
-sq_navigation_bar_finalize(GObject *object)
+sq_navigation_bar_dispose(GObject *object)
 {
 	SQNavigationBar *navigation_bar = SQ_NAVIGATION_BAR(object);
 	if(navigation_bar->store)
@@ -99,7 +103,9 @@
 			g_signal_handlers_disconnect_by_func(navigation_bar->store, navigation_bar->_cb_pwd_changed, navigation_bar);
 		if(navigation_bar->_cb_new_archive)
 			g_signal_handlers_disconnect_by_func(navigation_bar->store, navigation_bar->_cb_new_archive, navigation_bar);
+		navigation_bar->store = NULL;
 	}
+	parent_class->dispose(object);
 }
 
 void

Modified: squeeze/trunk/src/notebook.c
===================================================================
--- squeeze/trunk/src/notebook.c	2007-01-22 19:38:05 UTC (rev 24699)
+++ squeeze/trunk/src/notebook.c	2007-01-22 20:44:40 UTC (rev 24700)
@@ -428,7 +428,10 @@
 sq_notebook_set_navigation_bar(SQNotebook *notebook, SQNavigationBar *bar)
 {
 	if(notebook->navigation_bar)
+	{
 		sq_navigation_bar_set_store(notebook->navigation_bar, NULL);
+		gtk_widget_unref(GTK_WIDGET(notebook->navigation_bar));
+	}
 
 	notebook->props._up_dir = TRUE;
 
@@ -443,6 +446,9 @@
 			notebook->props._up_dir = FALSE;
 #endif
 	}
+	
+	if(bar)
+		gtk_widget_ref(GTK_WIDGET(bar));
 
 	if(gtk_notebook_get_n_pages(GTK_NOTEBOOK(notebook)))
 	{

Modified: squeeze/trunk/src/widget_factory.c
===================================================================
--- squeeze/trunk/src/widget_factory.c	2007-01-22 19:38:05 UTC (rev 24699)
+++ squeeze/trunk/src/widget_factory.c	2007-01-22 20:44:40 UTC (rev 24700)
@@ -995,7 +995,10 @@
 static void
 cb_sq_widget_factory_widget_destroyed(GtkObject *obj, gpointer user_data)
 {
-	g_signal_handlers_disconnect_by_func(user_data, cb_sq_widget_factory_property_notify, obj);
+	if(user_data)
+	{
+		g_signal_handlers_disconnect_by_func(user_data, cb_sq_widget_factory_property_notify, obj);
+	}
 }
 
 static void



More information about the Xfce4-commits mailing list