[nautilus-actions] nact_menubar_instance_dispose(): disconnect signal handler
- From: Pierre Wieser <pwieser src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus-actions] nact_menubar_instance_dispose(): disconnect signal handler
- Date: Wed, 15 Feb 2012 21:17:42 +0000 (UTC)
commit 521d59c84145e8d7d2aaa1fb67052c75e4134a14
Author: Pierre Wieser <pwieser trychlos org>
Date: Wed Feb 15 21:43:16 2012 +0100
nact_menubar_instance_dispose(): disconnect signal handler
ChangeLog | 3 +++
src/nact/nact-menubar-priv.h | 1 +
src/nact/nact-menubar.c | 40 ++++++++++++++++++++++++----------------
3 files changed, 28 insertions(+), 16 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 817079f..9397eb2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2012-02-15 Pierre Wieser <pwieser trychlos org>
+ * src/nact/nact-menubar-priv.h:
+ * src/nact/nact-menubar.c (instance_dispose): Disconnect signal handler.
+
* src/nact/base-window.c (instance_dispose): Improve debug message.
* src/nact/nact-menubar-edit.c
diff --git a/src/nact/nact-menubar-priv.h b/src/nact/nact-menubar-priv.h
index a120be7..0fc2fd0 100644
--- a/src/nact/nact-menubar-priv.h
+++ b/src/nact/nact-menubar-priv.h
@@ -54,6 +54,7 @@ struct _NactMenubarPrivate {
/* set at instanciation time
*/
BaseWindow *window;
+ gulong update_sensitivities_handler_id;
/* set at initialization time
*/
diff --git a/src/nact/nact-menubar.c b/src/nact/nact-menubar.c
index 22657e9..799a4bc 100644
--- a/src/nact/nact-menubar.c
+++ b/src/nact/nact-menubar.c
@@ -341,24 +341,31 @@ static void
instance_dispose( GObject *object )
{
static const gchar *thisfn = "nact_menubar_instance_dispose";
- NactMenubar *self;
+ NactMenubarPrivate *priv;
g_return_if_fail( NACT_IS_MENUBAR( object ));
- self = NACT_MENUBAR( object );
+ priv = NACT_MENUBAR( object )->private;
+
+ if( !priv->dispose_has_run ){
+
+ g_debug( "%s: object=%p (%s)",
+ thisfn,
+ ( void * ) object, G_OBJECT_TYPE_NAME( object ));
- if( !self->private->dispose_has_run ){
- g_debug( "%s: object=%p (%s)", thisfn, ( void * ) object, G_OBJECT_TYPE_NAME( object ));
+ priv->dispose_has_run = TRUE;
- self->private->dispose_has_run = TRUE;
+ base_window_signal_disconnect(
+ priv->window,
+ priv->update_sensitivities_handler_id );
- g_object_unref( self->private->action_group );
- g_object_unref( self->private->notebook_group );
- g_object_unref( self->private->ui_manager );
- g_object_unref( self->private->sort_buttons );
+ g_object_unref( priv->action_group );
+ g_object_unref( priv->notebook_group );
+ g_object_unref( priv->ui_manager );
+ g_object_unref( priv->sort_buttons );
- if( self->private->selected_items ){
- g_list_free( self->private->selected_items );
+ if( priv->selected_items ){
+ g_list_free( priv->selected_items );
}
/* chain up to the parent class */
@@ -556,11 +563,12 @@ on_base_initialize_window( BaseWindow *window, gpointer user_data )
MAIN_SIGNAL_SELECTION_CHANGED,
G_CALLBACK( on_tree_view_selection_changed ));
- base_window_signal_connect(
- window,
- G_OBJECT( bar ),
- MENUBAR_SIGNAL_UPDATE_SENSITIVITIES,
- G_CALLBACK( on_update_sensitivities ));
+ bar->private->update_sensitivities_handler_id =
+ base_window_signal_connect(
+ window,
+ G_OBJECT( bar ),
+ MENUBAR_SIGNAL_UPDATE_SENSITIVITIES,
+ G_CALLBACK( on_update_sensitivities ));
nact_menubar_file_initialize( bar );
nact_main_toolbar_init( window, bar->private->action_group );
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]