* Fixes NB#97283, fixes moving messages from viewer window
authorSergio Villar Senin <svillar@igalia.com>
Mon, 12 Jan 2009 15:58:58 +0000 (15:58 +0000)
committerSergio Villar Senin <svillar@igalia.com>
Mon, 12 Jan 2009 15:58:58 +0000 (15:58 +0000)
pmo-trunk-r7107

src/gnome/modest-platform.c
src/hildon2/modest-platform.c
src/maemo/modest-platform.c
src/modest-ui-actions.c

index 3236bc2..ba6a536 100644 (file)
@@ -630,6 +630,9 @@ modest_platform_get_list_to_move (ModestWindow *window)
                        tny_list_prepend (list, G_OBJECT (header));
                        g_object_unref (header);
                }
+       } else {
+               g_return_val_if_reached (NULL);
        }
+
        return list;
 }
index 19c8883..f48a81c 100644 (file)
@@ -2450,16 +2450,16 @@ modest_platform_create_move_to_dialog (GtkWindow *parent_window,
 TnyList *
 modest_platform_get_list_to_move (ModestWindow *window)
 {
+       TnyList *list = NULL;
+
        if (MODEST_IS_HEADER_WINDOW (window)) {
                ModestHeaderView *header_view;
 
                header_view = modest_header_window_get_header_view (MODEST_HEADER_WINDOW (window));
-
-               return modest_header_view_get_selected_headers (header_view);
+               list = modest_header_view_get_selected_headers (header_view);
        } else if (MODEST_IS_FOLDER_WINDOW (window)) {
                ModestFolderView *folder_view;
                TnyFolderStore *selected_folder;
-               TnyList *list;
 
                list = TNY_LIST (tny_simple_list_new ());
                folder_view = modest_folder_window_get_folder_view (MODEST_FOLDER_WINDOW (window));
@@ -2469,7 +2469,18 @@ modest_platform_get_list_to_move (ModestWindow *window)
                        g_object_unref (selected_folder);
                }
                return list;
+       } else if (MODEST_IS_MSG_VIEW_WINDOW (window)) {
+               TnyHeader *header;
+
+               header = modest_msg_view_window_get_header (MODEST_MSG_VIEW_WINDOW (window));
+               if (header) {
+                       list = TNY_LIST (tny_simple_list_new ());
+                       tny_list_prepend (list, G_OBJECT (header));
+                       g_object_unref (header);
+               }
        } else {
-               return NULL;
+               g_return_val_if_reached (NULL);
        }
+
+       return list;
 }
index 28fc3ab..46a0c55 100644 (file)
@@ -2241,6 +2241,9 @@ modest_platform_get_list_to_move (ModestWindow *window)
                        tny_list_prepend (list, G_OBJECT (header));
                        g_object_unref (header);
                }
+       } else {
+               g_return_val_if_reached (NULL);
        }
+
        return list;
 }
index a61fa17..c4bf52d 100644 (file)
@@ -4845,7 +4845,8 @@ on_move_to_dialog_response (GtkDialog *dialog,
        }
 
        /* Free the helper and exit */
-       g_object_unref (helper->list);
+       if (helper->list)
+               g_object_unref (helper->list);
        g_slice_free (MoveToInfo, helper);
        gtk_widget_destroy (GTK_WIDGET (dialog));
 }