aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/component/select-names
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/gui/component/select-names')
-rw-r--r--addressbook/gui/component/select-names/e-select-names-manager.c12
-rw-r--r--addressbook/gui/component/select-names/e-select-names.c13
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");