[Goodies-commits] r7604 - in gigolo/trunk: . src
Enrico Troeger
enrico at xfce.org
Wed Jun 17 23:44:27 CEST 2009
Author: enrico
Date: 2009-06-17 21:44:27 +0000 (Wed, 17 Jun 2009)
New Revision: 7604
Modified:
gigolo/trunk/ChangeLog
gigolo/trunk/src/browsenetworkpanel.c
gigolo/trunk/src/window.c
Log:
Properly clean up on destruction.
Modified: gigolo/trunk/ChangeLog
===================================================================
--- gigolo/trunk/ChangeLog 2009-06-17 21:34:07 UTC (rev 7603)
+++ gigolo/trunk/ChangeLog 2009-06-17 21:44:27 UTC (rev 7604)
@@ -3,6 +3,8 @@
* src/backendgvfs.c, src/backendgvfs.h, src/bookmarkeditdialog.c:
When querying Samba shares in the Connect/Bookmark Edit dialog,
mount smb://hostname as necessary.
+ * src/browsenetworkpanel.c, src/window.c:
+ Properly clean up on destruction.
2009-06-13 Enrico Tröger <enrico(at)xfce(dot)org>
Modified: gigolo/trunk/src/browsenetworkpanel.c
===================================================================
--- gigolo/trunk/src/browsenetworkpanel.c 2009-06-17 21:34:07 UTC (rev 7603)
+++ gigolo/trunk/src/browsenetworkpanel.c 2009-06-17 21:44:27 UTC (rev 7604)
@@ -54,6 +54,8 @@
GtkWidget *popup_menu;
GtkWidget *tree;
GtkTreeStore *store;
+
+ gulong browse_network_signal_id;
};
enum
@@ -63,6 +65,7 @@
};
static void tree_selection_changed_cb(GtkTreeSelection *selection, GigoloBrowseNetworkPanel *panel);
+static void browse_network_finished_cb(G_GNUC_UNUSED GigoloBackendGVFS *bnd, GigoloBrowseNetworkPanel *panel);
G_DEFINE_TYPE(GigoloBrowseNetworkPanel, gigolo_browse_network_panel, GTK_TYPE_VBOX);
@@ -71,10 +74,20 @@
static void gigolo_browse_network_panel_finalize(GObject *object)
{
GigoloBrowseNetworkPanelPrivate *priv = GIGOLO_BROWSE_NETWORK_PANEL_GET_PRIVATE(object);
+ GigoloBackendGVFS *backend;
gtk_widget_destroy(priv->popup_menu);
gdk_cursor_unref(priv->wait_cursor);
+ backend = gigolo_window_get_backend(priv->parent);
+ if (backend != NULL && IS_GIGOLO_BACKEND_GVFS(backend) && priv->browse_network_signal_id > 0)
+ {
+ g_signal_handler_disconnect(gigolo_window_get_backend(priv->parent),
+ priv->browse_network_signal_id);
+ priv->browse_network_signal_id = 0;
+ }
+
+
G_OBJECT_CLASS(gigolo_browse_network_panel_parent_class)->finalize(object);
}
@@ -466,6 +479,8 @@
GtkToolItem *toolitem;
GigoloBrowseNetworkPanelPrivate *priv = GIGOLO_BROWSE_NETWORK_PANEL_GET_PRIVATE(panel);
+ priv->browse_network_signal_id = 0;
+
toolbar = gtk_toolbar_new();
gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ);
gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_BUTTON);
@@ -535,7 +550,8 @@
priv->parent = parent;
backend = gigolo_window_get_backend(parent);
- g_signal_connect(backend, "browse-network-finished", G_CALLBACK(browse_network_finished_cb), self);
+ priv->browse_network_signal_id = g_signal_connect(backend, "browse-network-finished",
+ G_CALLBACK(browse_network_finished_cb), self);
return self;
}
Modified: gigolo/trunk/src/window.c
===================================================================
--- gigolo/trunk/src/window.c 2009-06-17 21:34:07 UTC (rev 7603)
+++ gigolo/trunk/src/window.c 2009-06-17 21:44:27 UTC (rev 7604)
@@ -145,6 +145,7 @@
g_object_unref(priv->systray_icon);
g_object_unref(priv->systray_icon_popup_menu);
g_object_unref(priv->backend_gvfs);
+ priv->backend_gvfs = NULL;
gtk_widget_destroy(GTK_WIDGET(window));
More information about the Goodies-commits
mailing list