diff options
Diffstat (limited to 'addressbook/gui/component/select-names')
-rw-r--r-- | addressbook/gui/component/select-names/e-select-names-manager.c | 12 | ||||
-rw-r--r-- | addressbook/gui/component/select-names/e-select-names.c | 13 |
2 files changed, 13 insertions, 12 deletions
diff --git a/addressbook/gui/component/select-names/e-select-names-manager.c b/addressbook/gui/component/select-names/e-select-names-manager.c index 120fc25f97..9d26dc4dc5 100644 --- a/addressbook/gui/component/select-names/e-select-names-manager.c +++ b/addressbook/gui/component/select-names/e-select-names-manager.c @@ -573,6 +573,13 @@ e_select_names_clicked(ESelectNames *dialog, gint button, ESelectNamesManager *m } } +static void +clear_widget (gpointer data, GObject *where_object_was) +{ + GtkWidget **widget_ref = data; + *widget_ref = NULL; +} + void e_select_names_manager_activate_dialog (ESelectNamesManager *manager, const char *id) @@ -605,10 +612,7 @@ e_select_names_manager_activate_dialog (ESelectNamesManager *manager, G_CALLBACK(e_select_names_clicked), manager); - g_signal_connect(manager->names, - "destroy", - G_CALLBACK(gtk_widget_destroyed), - &manager->names); + g_object_weak_ref (manager->names, clear_widget, &manager->names); gtk_widget_show(GTK_WIDGET(manager->names)); } diff --git a/addressbook/gui/component/select-names/e-select-names.c b/addressbook/gui/component/select-names/e-select-names.c index 162343675d..7120537070 100644 --- a/addressbook/gui/component/select-names/e-select-names.c +++ b/addressbook/gui/component/select-names/e-select-names.c @@ -457,9 +457,9 @@ e_select_names_create_categories (gchar *name, } static void -clear_widget (GtkWidget *w, gpointer user_data) +clear_widget (gpointer data, GObject *where_object_was) { - GtkWidget **widget_ref = user_data; + GtkWidget **widget_ref = data; *widget_ref = NULL; } @@ -511,8 +511,7 @@ e_select_names_init (ESelectNames *e_select_names) if (e_select_names->status_message) { g_signal_connect (e_select_names->model, "status_message", G_CALLBACK (status_message), e_select_names); - g_signal_connect(e_select_names->status_message, "destroy", - G_CALLBACK(clear_widget), &e_select_names->status_message); + g_object_weak_ref (e_select_names->status_message, clear_widget, &e_select_names->status_message); } e_select_names->categories = glade_xml_get_widget (gui, "custom-categories"); @@ -521,8 +520,7 @@ e_select_names_init (ESelectNames *e_select_names) if (e_select_names->categories) { g_signal_connect(e_select_names->categories, "changed", G_CALLBACK(categories_changed), e_select_names); - g_signal_connect(e_select_names->categories, "destroy", - G_CALLBACK(clear_widget), &e_select_names->categories); + g_object_weak_ref (e_select_names->categories, clear_widget, &e_select_names->categories); } e_select_names->select_entry = glade_xml_get_widget (gui, "entry-select"); @@ -533,8 +531,7 @@ e_select_names_init (ESelectNames *e_select_names) G_CALLBACK(select_entry_changed), e_select_names); g_signal_connect(e_select_names->select_entry, "activate", G_CALLBACK(update_query), e_select_names); - g_signal_connect(e_select_names->select_entry, "destroy", - G_CALLBACK(clear_widget), &e_select_names->select_entry); + g_object_weak_ref (e_select_names->select_entry, clear_widget, &e_select_names->select_entry); } button = glade_xml_get_widget (gui, "button-find"); |