Set the proper parent for message details dialog
[modest] / src / modest-ui-actions.c
index 0e92ca5..150b532 100644 (file)
@@ -564,11 +564,14 @@ modest_ui_actions_on_accounts (GtkAction *action,
                return;
        } else {
                /* Show the list of accounts */
-               GtkWindow *account_win = GTK_WINDOW (modest_account_view_window_new ());
+               GtkWindow *toplevel, *account_win;
+
+               account_win = GTK_WINDOW (modest_account_view_window_new ());
+               toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (win)));
 
                /* 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_WINDOW (win), GTK_DIALOG (account_win));
+               modest_utils_show_dialog_and_forget (toplevel, GTK_DIALOG (account_win));
        }
 }
 
@@ -1931,7 +1934,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 +2904,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 ((GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (source_win)),
+                                         parent_folder, (const gchar *) suggested_name);
                }
 
        } else {
@@ -3000,7 +3004,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 +3018,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)
 {
@@ -3041,9 +3045,11 @@ modest_ui_actions_on_new_folder (GtkAction *action, ModestWindow *window)
 
        if (MODEST_IS_FOLDER_WINDOW (window)) {
                GtkWidget *folder_view;
+               GtkWindow *toplevel;
 
                folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (window)));
-               modest_ui_actions_create_folder (GTK_WIDGET (window), folder_view, NULL);
+               toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
+               modest_ui_actions_create_folder (toplevel, folder_view, NULL);
        } else {
                g_assert_not_reached ();
        }
@@ -3198,7 +3204,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);
@@ -3414,7 +3420,7 @@ modest_ui_actions_on_password_requested (TnyAccountStore *account_store,
                gtk_dialog_new_with_buttons (_("mail_ti_password_protected"),
                                             NULL,
                                             GTK_DIALOG_MODAL,
-                                            _HL("wdgt_bd_done"),
+                                            _HL_DONE,
                                             GTK_RESPONSE_ACCEPT,
                                             NULL);
        gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox),
@@ -4076,9 +4082,6 @@ modest_ui_actions_on_change_fullscreen (GtkAction *action,
        fullscreen = modest_window_mgr_get_fullscreen_mode (mgr);
        modest_window_mgr_set_fullscreen_mode (mgr, !fullscreen);
 
-#ifndef MODEST_TOOLKIT_HILDON2
-       gtk_window_present (GTK_WINDOW (window));
-#endif
 }
 
 /*
@@ -4091,6 +4094,7 @@ headers_action_show_details (TnyHeader *header,
 
 {
        gboolean async_retrieval;
+       GtkWindow *toplevel;
        TnyMsg *msg = NULL;
 
        if (MODEST_IS_MSG_VIEW_WINDOW (window)) {
@@ -4099,7 +4103,8 @@ headers_action_show_details (TnyHeader *header,
        } else {
                async_retrieval = FALSE;
        }
-       modest_platform_run_header_details_dialog (GTK_WINDOW (window), header, async_retrieval, msg);
+       toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
+       modest_platform_run_header_details_dialog (toplevel, header, async_retrieval, msg);
        if (msg)
                g_object_unref (msg);
 }
@@ -4132,8 +4137,9 @@ modest_ui_actions_on_details (GtkAction *action,
                header_view = GTK_WIDGET (modest_header_window_get_header_view (MODEST_HEADER_WINDOW (win)));
                folder = modest_header_view_get_folder (MODEST_HEADER_VIEW (header_view));
                if (folder) {
-                       modest_platform_run_folder_details_dialog (GTK_WINDOW (win),
-                                                                  folder);
+                       GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
+
+                       modest_platform_run_folder_details_dialog (toplevel, folder);
                        g_object_unref (folder);
                }
        }
@@ -4255,7 +4261,7 @@ on_move_to_dialog_response (GtkDialog *dialog,
 
        case MODEST_GTK_RESPONSE_NEW_FOLDER:
                selected = modest_folder_view_get_selected (folder_view);
-               modest_ui_actions_create_folder (GTK_WIDGET (dialog), GTK_WIDGET (folder_view), selected);
+               modest_ui_actions_create_folder ((GtkWindow *) dialog, GTK_WIDGET (folder_view), selected);
                g_object_unref (selected);
                return;
        case GTK_RESPONSE_NONE:
@@ -5089,9 +5095,11 @@ modest_ui_actions_on_settings (GtkAction *action,
                               ModestWindow *win)
 {
        GtkWidget *dialog;
+       GtkWindow *toplevel;
 
        dialog = modest_platform_get_global_settings_dialog ();
-       gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (win));
+       toplevel = (GtkWindow *) gtk_widget_get_toplevel (GTK_WIDGET (win));
+       gtk_window_set_transient_for (GTK_WINDOW (dialog), toplevel);
        gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
        gtk_widget_show_all (dialog);