From 209ebfaaa80ec59182bfc87392802609aa0de252 Mon Sep 17 00:00:00 2001 From: Jose Dapena Paz Date: Tue, 1 Dec 2009 13:20:44 +0100 Subject: [PATCH] Move some operations to properly find the parent window --- src/gtk/modest-platform.c | 4 ++-- src/hildon2/modest-platform.c | 4 ++-- src/modest-platform.h | 2 +- src/modest-ui-actions.c | 13 +++++++------ src/modest-utils.c | 21 ++++----------------- src/modest-utils.h | 5 +++-- src/widgets/modest-toolkit-utils.c | 19 +++++++++++++++++++ src/widgets/modest-toolkit-utils.h | 2 ++ 8 files changed, 40 insertions(+), 30 deletions(-) diff --git a/src/gtk/modest-platform.c b/src/gtk/modest-platform.c index 61b91cc..9dd82ff 100644 --- a/src/gtk/modest-platform.c +++ b/src/gtk/modest-platform.c @@ -874,14 +874,14 @@ modest_platform_run_new_folder_dialog (GtkWindow *parent_window, } gint -modest_platform_run_rename_folder_dialog (GtkWindow *parent_window, +modest_platform_run_rename_folder_dialog (ModestWindow *parent_window, TnyFolderStore *parent_folder, const gchar *suggested_name, gchar **folder_name) { g_return_val_if_fail (TNY_IS_FOLDER_STORE (parent_folder), GTK_RESPONSE_REJECT); - return modest_platform_run_folder_common_dialog (parent_window, + return modest_platform_run_folder_common_dialog (modest_toolkit_utils_parent_window (GTK_WIDGET (parent_window)), parent_folder, _HL("ckdg_ti_rename_folder"), _HL("ckdg_fi_rename_name"), diff --git a/src/hildon2/modest-platform.c b/src/hildon2/modest-platform.c index 5790ee8..c2df14f 100644 --- a/src/hildon2/modest-platform.c +++ b/src/hildon2/modest-platform.c @@ -1194,14 +1194,14 @@ modest_platform_run_new_folder_dialog (GtkWindow *parent_window, } gint -modest_platform_run_rename_folder_dialog (GtkWindow *parent_window, +modest_platform_run_rename_folder_dialog (ModestWindow *parent_window, TnyFolderStore *parent_folder, const gchar *suggested_name, gchar **folder_name) { g_return_val_if_fail (TNY_IS_FOLDER_STORE (parent_folder), GTK_RESPONSE_REJECT); - return modest_platform_run_folder_common_dialog (parent_window, + return modest_platform_run_folder_common_dialog (modest_toolkit_utils_parent_window (GTK_WIDGET (parent_window)), parent_folder, _HL("ckdg_ti_rename_folder"), _HL("ckdg_fi_rename_name"), diff --git a/src/modest-platform.h b/src/modest-platform.h index dcb4f2e..d9fc19e 100644 --- a/src/modest-platform.h +++ b/src/modest-platform.h @@ -182,7 +182,7 @@ gint modest_platform_run_new_folder_dialog (GtkWindow *parent_window * * Returns: the #GtkResponseType returned by the dialog **/ -gint modest_platform_run_rename_folder_dialog (GtkWindow *parent_window, +gint modest_platform_run_rename_folder_dialog (ModestWindow *parent_window, TnyFolderStore *parent, const gchar *current_name, gchar **folder_name); diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 8a35578..c3bdbda 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -568,7 +568,7 @@ modest_ui_actions_on_accounts (GtkAction *action, /* The accounts dialog must be modal */ modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (account_win), (GtkWindow *) win); - modest_utils_show_dialog_and_forget (GTK_WIDGET (win), GTK_DIALOG (account_win)); + modest_utils_show_dialog_and_forget (modest_toolkit_utils_parent_window (GTK_WIDGET (win)), GTK_DIALOG (account_win)); } } @@ -1931,7 +1931,7 @@ modest_ui_actions_on_sort (GtkAction *action, } /* Show sorting dialog */ - modest_utils_run_sort_dialog (GTK_WINDOW (window), MODEST_SORT_HEADERS); + modest_utils_run_sort_dialog (MODEST_WINDOW (window), MODEST_SORT_HEADERS); } static void @@ -2901,7 +2901,8 @@ do_create_folder_cb (ModestMailOperation *mail_op, full memory condition */ modest_platform_information_banner ((GtkWidget *) source_win, NULL, _("mail_in_ui_folder_create_error")); - do_create_folder (source_win, parent_folder, (const gchar *) suggested_name); + do_create_folder (modest_toolkit_utils_parent_window (GTK_WIDGET (source_win)), + parent_folder, (const gchar *) suggested_name); } } else { @@ -3000,7 +3001,7 @@ do_create_folder (GtkWindow *parent_window, helper->folder_name = g_strdup (folder_name); helper->parent = g_object_ref (parent_folder); - modest_platform_connect_if_remote_and_perform (GTK_WINDOW (parent_window), + modest_platform_connect_if_remote_and_perform (parent_window, TRUE, parent_folder, do_create_folder_performer, @@ -3014,7 +3015,7 @@ do_create_folder (GtkWindow *parent_window, } static void -modest_ui_actions_create_folder(GtkWidget *parent_window, +modest_ui_actions_create_folder(GtkWindow *parent_window, GtkWidget *folder_view, TnyFolderStore *parent_folder) { @@ -3198,7 +3199,7 @@ modest_ui_actions_on_edit_mode_rename_folder (ModestWindow *window) current_name = tny_folder_get_name (TNY_FOLDER (folder)); parent = tny_folder_get_folder_store (TNY_FOLDER (folder)); - response = modest_platform_run_rename_folder_dialog (GTK_WINDOW (window), + response = modest_platform_run_rename_folder_dialog (MODEST_WINDOW (window), parent, current_name, &folder_name); g_object_unref (parent); diff --git a/src/modest-utils.c b/src/modest-utils.c index 14d9795..d611f3e 100644 --- a/src/modest-utils.c +++ b/src/modest-utils.c @@ -420,26 +420,13 @@ modest_utils_get_supported_secure_authentication_methods (ModestProtocolType pro } void -modest_utils_show_dialog_and_forget (GtkWidget *parent_window, +modest_utils_show_dialog_and_forget (GtkWindow *parent_window, GtkDialog *dialog) { g_return_if_fail (GTK_IS_DIALOG(dialog)); -#ifdef MODEST_TOOLKIT_GTK - if (GTK_IS_WINDOW (parent_window)) { - gtk_window_set_transient_for (GTK_WINDOW (dialog), parent_window); - } else { - ModestWindowMgr *window_mgr; - GtkWidget *shell; - - window_mgr = modest_runtime_get_window_mgr (); - shell = modest_gtk_window_mgr_get_shell (MODEST_GTK_WINDOW_MGR (window_mgr)); - gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (shell)); - } -#else g_return_if_fail (GTK_IS_WINDOW(parent_window)); gtk_window_set_transient_for (GTK_WINDOW (dialog), parent_window); -#endif /* Destroy the dialog when it is closed: */ g_signal_connect_swapped (dialog, @@ -550,7 +537,7 @@ checked_modest_sort_criterium_view_add_sort_key (ModestSortCriteriumView *view, } static void -launch_sort_headers_dialog (GtkWindow *parent_window, +launch_sort_headers_dialog (ModestWindow *parent_window, GtkDialog *dialog) { ModestHeaderView *header_view = NULL; @@ -690,13 +677,13 @@ launch_sort_headers_dialog (GtkWindow *parent_window, } void -modest_utils_run_sort_dialog (GtkWindow *parent_window, +modest_utils_run_sort_dialog (ModestWindow *parent_window, ModestSortDialogType type) { GtkWidget *dialog = NULL; /* Build dialog */ - dialog = modest_platform_create_sort_dialog (parent_window); + dialog = modest_platform_create_sort_dialog (modest_toolkit_utils_parent_window (GTK_WIDGET (parent_window))); if (dialog == NULL) return; modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), diff --git a/src/modest-utils.h b/src/modest-utils.h index b5f87e2..3d8f8a1 100644 --- a/src/modest-utils.h +++ b/src/modest-utils.h @@ -36,6 +36,7 @@ #include #include #include "widgets/modest-validating-entry.h" +#include typedef enum { MODEST_UTILS_GET_SUPPORTED_SECURE_AUTHENTICATION_ERROR_CANCELED @@ -127,7 +128,7 @@ void modest_utils_show_information_note_in_main_context_and_forget (GtkWindow *p * blocking. Use this when you don't want to use gtk_dialog_run(), which might lead * to hangs. */ -void modest_utils_show_dialog_and_forget (GtkWidget *parent_window, GtkDialog *dialog); +void modest_utils_show_dialog_and_forget (GtkWindow *parent_window, GtkDialog *dialog); /** * modest_toggle_action_set_active_block_notify: @@ -145,7 +146,7 @@ void modest_utils_toggle_action_set_active_block_notify (GtkToggleAction *action * * raises a sort dialog for this window */ -void modest_utils_run_sort_dialog (GtkWindow *parent_window, ModestSortDialogType type); +void modest_utils_run_sort_dialog (ModestWindow *parent_window, ModestSortDialogType type); /** diff --git a/src/widgets/modest-toolkit-utils.c b/src/widgets/modest-toolkit-utils.c index 5728d3d..116babe 100644 --- a/src/widgets/modest-toolkit-utils.c +++ b/src/widgets/modest-toolkit-utils.c @@ -40,6 +40,9 @@ #ifdef MODEST_TOOLKIT_HILDON2 #include #endif +#ifdef MODEST_TOOLKIT_GTK +#include +#endif /* Label child of a captioned */ #define CAPTIONED_LABEL_CHILD "captioned-label" @@ -436,3 +439,19 @@ modest_toolkit_utils_select_attachments (GtkWindow *window, TnyList *att_list, g #endif } +GtkWindow * +modest_toolkit_utils_parent_window (GtkWidget *window) +{ +#ifdef MODEST_TOOLKIT_GTK + if (MODEST_IS_WINDOW (window)) { + ModestWindowMgr *mgr; + + mgr = modest_runtime_get_window_mgr (); + return GTK_WINDOW (modest_gtk_window_mgr_get_shell (MODEST_GTK_WINDOW_MGR (mgr))); + } else { + return GTK_WINDOW (window); + } +#else + return GTK_WINDOW (window); +#endif +} diff --git a/src/widgets/modest-toolkit-utils.h b/src/widgets/modest-toolkit-utils.h index a0a887e..8a20b67 100644 --- a/src/widgets/modest-toolkit-utils.h +++ b/src/widgets/modest-toolkit-utils.h @@ -85,6 +85,8 @@ GtkWidget *modest_toolkit_utils_create_group_box (const gchar *label, GtkWidget gboolean modest_toolkit_utils_select_attachments (GtkWindow *window, TnyList *att_list, gboolean include_msgs); +GtkWindow *modest_toolkit_utils_parent_window (GtkWidget *window); + #endif /*__MODEST_TOOLKIT_UTILS_H__*/ -- 1.7.9.5