* src/maemo/modest-msg-edit-window.c:
authorJose Dapena Paz <jdapena@igalia.com>
Wed, 1 Aug 2007 17:21:39 +0000 (17:21 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Wed, 1 Aug 2007 17:21:39 +0000 (17:21 +0000)
        * A missing else was breaking save to drafts deletion of
          old draft.
* src/modest-mail-operation.c:
        * Now save to drafts first adds the new message, and then
          removes the old one.
        * Now save to drafts folder sync is asynchronous.

pmo-trunk-r2898

src/maemo/modest-msg-edit-window.c
src/modest-mail-operation.c

index c9e924c..77e9e93 100644 (file)
@@ -1270,8 +1270,7 @@ modest_msg_edit_window_get_msg_data (ModestMsgEditWindow *edit_window)
        data->subject =  g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->subject_field)));
        if (priv->draft_msg) {
                data->draft_msg = g_object_ref (priv->draft_msg);
-       } 
-       if (priv->outbox_msg) {
+       } else if (priv->outbox_msg) {
                data->draft_msg = g_object_ref (priv->outbox_msg);
        } else {
                data->draft_msg = NULL;
index 3e1ef15..2fde491 100644 (file)
@@ -824,21 +824,21 @@ modest_mail_operation_save_to_drafts_cb (ModestMailOperation *self,
                goto end;
        }
 
-       if (info->draft_msg != NULL) {
+       if (!priv->error)
+               tny_folder_add_msg (folder, msg, &(priv->error));
+
+       if ((!priv->error) && (info->draft_msg != NULL)) {
                header = tny_msg_get_header (info->draft_msg);
                src_folder = tny_header_get_folder (header); 
                /* Remove the old draft expunging it */
                tny_folder_remove_msg (src_folder, header, NULL);
                tny_header_set_flags (header, TNY_HEADER_FLAG_DELETED);
                tny_header_set_flags (header, TNY_HEADER_FLAG_SEEN);
-               tny_folder_sync (src_folder, TRUE, &(priv->error));  /* expunge */
+               tny_folder_sync_async (src_folder, TRUE, NULL, NULL, NULL);  /* expunge */
                g_object_unref (header);
        }
        
        if (!priv->error)
-               tny_folder_add_msg (folder, msg, &(priv->error));
-
-       if (!priv->error)
                priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS;
        else
                priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;