Proper "Escape" key accel in accelerator group of shell
[modest] / src / modest-ui-actions.c
index d051b39..dda39fe 100644 (file)
@@ -382,7 +382,6 @@ modest_ui_actions_on_edit_mode_delete_message (ModestWindow *win)
        gint response;
        ModestWindowMgr *mgr;
        gboolean retval = TRUE;
-       GtkWindow *toplevel;
 
        g_return_val_if_fail (MODEST_IS_WINDOW(win), FALSE);
 
@@ -413,8 +412,8 @@ modest_ui_actions_on_edit_mode_delete_message (ModestWindow *win)
                                           tny_list_get_length(header_list)), desc);
 
        /* Confirmation dialog */
-       toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) win);
-       response = modest_platform_run_confirmation_dialog (toplevel, message);
+       response = modest_platform_run_confirmation_dialog (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (win))),
+                                                           message);
 
        if (response == GTK_RESPONSE_OK) {
                GtkTreeSelection *sel = NULL;
@@ -3404,8 +3403,19 @@ on_delete_folder_cb (gboolean canceled,
        GtkWidget *folder_view;
        ModestMailOperation *mail_op;
        GtkTreeSelection *sel;
+       ModestWindow *modest_window;
 
-       if (!MODEST_IS_WINDOW(parent_window) || canceled || (err!=NULL)) {
+#ifdef MODEST_TOOLKIT_HILDON2
+       modest_window = (ModestWindow*) parent_window;
+#else
+       if (MODEST_IS_SHELL (parent_window)) {
+               modest_window = modest_shell_peek_window (MODEST_SHELL (parent_window));
+       } else {
+               modest_window = NULL;
+       }
+#endif
+
+       if (!MODEST_IS_WINDOW(modest_window) || canceled || (err!=NULL)) {
                /* Note that the connection process can fail due to
                   memory low conditions as it can not successfully
                   store the summary */
@@ -3418,8 +3428,8 @@ on_delete_folder_cb (gboolean canceled,
                return;
        }
 
-       if (MODEST_IS_FOLDER_WINDOW (parent_window)) {
-               folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (parent_window)));
+       if (MODEST_IS_FOLDER_WINDOW (modest_window)) {
+               folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (modest_window)));
        } else {
                g_object_unref (G_OBJECT (info->folder));
                g_free (info);
@@ -3452,12 +3462,9 @@ delete_folder (ModestWindow *window, gboolean move_to_trash)
        GtkWidget *folder_view;
        gint response;
        gchar *message;
-       GtkWindow *toplevel;
 
        g_return_val_if_fail (MODEST_IS_WINDOW(window), FALSE);
 
-       toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) window);
-
        if (MODEST_IS_FOLDER_WINDOW (window)) {
                folder_view = GTK_WIDGET (modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (window)));
        } else {
@@ -3473,7 +3480,7 @@ delete_folder (ModestWindow *window, gboolean move_to_trash)
 
        /* Show an error if it's an account */
        if (!TNY_IS_FOLDER (folder)) {
-               modest_platform_run_information_dialog (toplevel,
+               modest_platform_run_information_dialog (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (window))),
                                                        _("mail_in_ui_folder_delete_error"),
                                                        FALSE);
                g_object_unref (G_OBJECT (folder));
@@ -3483,7 +3490,7 @@ delete_folder (ModestWindow *window, gboolean move_to_trash)
        /* Ask the user */
        message =  g_strdup_printf (_("mcen_nc_delete_folder_text"),
                                    tny_folder_get_name (TNY_FOLDER (folder)));
-       response = modest_platform_run_confirmation_dialog (toplevel,
+       response = modest_platform_run_confirmation_dialog (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (window))),
                                                            (const gchar *) message);
        g_free (message);
 
@@ -5913,9 +5920,8 @@ modest_ui_actions_check_for_active_account (ModestWindow *self,
        store_conn_status = tny_account_get_connection_status (store_account);
        if (store_conn_status == TNY_CONNECTION_STATUS_CONNECTED || sending) {
                gint response;
-               GtkWindow *toplevel = (GtkWindow *) gtk_widget_get_toplevel ((GtkWidget *) self);
 
-               response = modest_platform_run_confirmation_dialog (toplevel,
+               response = modest_platform_run_confirmation_dialog (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self))), 
                                                                    _("emev_nc_disconnect_account"));
                if (response == GTK_RESPONSE_OK) {
                        retval = TRUE;