From 36f1f29b9a42c56a619e031b045db5a18f2b1dd7 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Thu, 8 Jul 2010 16:10:59 +0100 Subject: Fix transience problems with ENameSelectorDialogs ... --- .../gui/contact-list-editor/e-contact-list-editor.c | 2 ++ calendar/gui/dialogs/alarm-dialog.c | 8 ++------ calendar/gui/dialogs/e-delegate-dialog.c | 8 ++------ calendar/gui/dialogs/memo-page.c | 7 ++----- calendar/gui/e-meeting-list-view.c | 6 ++---- composer/e-composer-name-header.c | 1 + plugins/groupwise-features/proxy.c | 4 +--- plugins/groupwise-features/share-folder.c | 20 +++++--------------- 8 files changed, 17 insertions(+), 39 deletions(-) diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c index 81bf3a4e47..cc734d2035 100644 --- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c +++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c @@ -774,6 +774,8 @@ contact_list_editor_select_button_clicked_cb (GtkWidget *widget) g_list_free (list); + e_name_selector_show_dialog (editor->priv->name_selector, + eab_editor_get_window (EAB_EDITOR (editor))); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_hide (GTK_WIDGET (dialog)); diff --git a/calendar/gui/dialogs/alarm-dialog.c b/calendar/gui/dialogs/alarm-dialog.c index 9fe23fe525..f7827413b7 100644 --- a/calendar/gui/dialogs/alarm-dialog.c +++ b/calendar/gui/dialogs/alarm-dialog.c @@ -902,13 +902,9 @@ show_options (Dialog *dialog) #endif static void -addressbook_clicked_cb (GtkWidget *widget, gpointer data) +addressbook_clicked_cb (GtkWidget *widget, Dialog *dialog) { - Dialog *dialog = data; - ENameSelectorDialog *name_selector_dialog; - - name_selector_dialog = e_name_selector_peek_dialog (dialog->name_selector); - gtk_widget_show (GTK_WIDGET (name_selector_dialog)); + e_name_selector_show_dialog (dialog->name_selector, dialog->toplevel); } static void diff --git a/calendar/gui/dialogs/e-delegate-dialog.c b/calendar/gui/dialogs/e-delegate-dialog.c index 551229cc6d..b45f587d57 100644 --- a/calendar/gui/dialogs/e-delegate-dialog.c +++ b/calendar/gui/dialogs/e-delegate-dialog.c @@ -189,13 +189,9 @@ static void addressbook_clicked_cb (GtkWidget *widget, gpointer data) { EDelegateDialog *edd = data; - EDelegateDialogPrivate *priv; - ENameSelectorDialog *name_selector_dialog; - priv = edd->priv; - - name_selector_dialog = e_name_selector_peek_dialog (priv->name_selector); - gtk_widget_show (GTK_WIDGET (name_selector_dialog)); + e_name_selector_show_dialog (edd->priv->name_selector, + e_delegate_dialog_get_toplevel (edd)); } static void diff --git a/calendar/gui/dialogs/memo-page.c b/calendar/gui/dialogs/memo-page.c index 27270fd592..735566b837 100644 --- a/calendar/gui/dialogs/memo-page.c +++ b/calendar/gui/dialogs/memo-page.c @@ -973,11 +973,8 @@ static void to_button_clicked_cb (GtkButton *button, MemoPage *mpage) { - ENameSelectorDialog *name_selector_dialog; - - name_selector_dialog = e_name_selector_peek_dialog ( - mpage->priv->name_selector); - gtk_widget_show (GTK_WIDGET (name_selector_dialog)); + e_name_selector_show_dialog (mpage->priv->name_selector, + mpage->priv->main); } static void diff --git a/calendar/gui/e-meeting-list-view.c b/calendar/gui/e-meeting-list-view.c index b58122124a..686d43c65d 100644 --- a/calendar/gui/e-meeting-list-view.c +++ b/calendar/gui/e-meeting-list-view.c @@ -945,10 +945,8 @@ name_selector_dialog_close_cb (ENameSelectorDialog *dialog, gint response, gpoin void e_meeting_list_view_invite_others_dialog (EMeetingListView *view) { - ENameSelectorDialog *dialog; - - dialog = e_name_selector_peek_dialog (view->priv->name_selector); - gtk_widget_show (GTK_WIDGET (dialog)); + e_name_selector_show_dialog (view->priv->name_selector, + GTK_WIDGET (view)); } void diff --git a/composer/e-composer-name-header.c b/composer/e-composer-name-header.c index 18714abecd..3544ff0f21 100644 --- a/composer/e-composer-name-header.c +++ b/composer/e-composer-name-header.c @@ -224,6 +224,7 @@ composer_name_header_clicked (EComposerHeader *header) dialog = e_name_selector_peek_dialog (priv->name_selector); e_name_selector_dialog_set_destination_index ( dialog, priv->destination_index); + e_name_selector_show_dialog (priv->name_selector, header->title_widget); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_hide (GTK_WIDGET (dialog)); } diff --git a/plugins/groupwise-features/proxy.c b/plugins/groupwise-features/proxy.c index 1507e08af0..c539974564 100644 --- a/plugins/groupwise-features/proxy.c +++ b/plugins/groupwise-features/proxy.c @@ -884,12 +884,10 @@ address_button_clicked (GtkButton *button, EAccount *account) { proxyDialog *prd; proxyDialogPrivate *priv; - ENameSelectorDialog *name_selector_dialog; prd = g_object_get_data ((GObject *)account, "prd"); priv = prd->priv; - name_selector_dialog = e_name_selector_peek_dialog (priv->proxy_name_selector); - gtk_widget_show (GTK_WIDGET (name_selector_dialog)); + e_name_selector_show_dialog (priv->proxy_name_selector, priv->main); } static void diff --git a/plugins/groupwise-features/share-folder.c b/plugins/groupwise-features/share-folder.c index 7470337995..365b7c1fb1 100644 --- a/plugins/groupwise-features/share-folder.c +++ b/plugins/groupwise-features/share-folder.c @@ -535,12 +535,6 @@ notification_clicked(GtkButton *button, ShareFolder *sf) gtk_window_present ((GtkWindow *)sf->window); } -static void -addressbook_dialog_response (ENameSelectorDialog *name_selector_dialog, gint response, gpointer user_data) -{ - gtk_widget_hide (GTK_WIDGET (name_selector_dialog)); -} - static void addressbook_entry_changed (GtkWidget *entry, gpointer user_data) { @@ -548,17 +542,13 @@ addressbook_entry_changed (GtkWidget *entry, gpointer user_data) } static void -address_button_clicked_cb (GtkButton *button, gpointer data) +address_button_clicked_cb (GtkButton *button, ShareFolder *sf) { - ShareFolder *sf = data; - ENameSelectorDialog *name_selector_dialog; - - name_selector_dialog = e_name_selector_peek_dialog (sf->name_selector); - gtk_widget_show (GTK_WIDGET (name_selector_dialog)); + e_name_selector_show_dialog (sf->name_selector, sf->window); } - static void -user_selected(GtkTreeSelection *selection, ShareFolder *sf) +static void +user_selected (GtkTreeSelection *selection, ShareFolder *sf) { GtkTreeModel *model; @@ -695,7 +685,7 @@ share_folder_construct (ShareFolder *sf) sf->name_selector = e_name_selector_new (); name_selector_dialog = e_name_selector_peek_dialog (sf->name_selector); g_signal_connect (name_selector_dialog, "response", - G_CALLBACK (addressbook_dialog_response), sf); + G_CALLBACK (gtk_widget_hide), sf); name_selector_model = e_name_selector_peek_model (sf->name_selector); e_name_selector_model_add_section (name_selector_model, "Add User", _("Add User"), NULL); -- cgit v1.2.3