Bug #690433 - Do not refresh folder on every message transfer
authorMilan Crha <mcrha@redhat.com>
Tue, 12 Mar 2013 16:03:34 +0000 (17:03 +0100)
committerMilan Crha <mcrha@redhat.com>
Tue, 12 Mar 2013 16:04:15 +0000 (17:04 +0100)
camel/camel-filter-driver.c
camel/camel-imapx-folder.c

index 02c01a0..f7ab76d 100644 (file)
@@ -1156,9 +1156,10 @@ close_folder (gpointer key,
 
        if (folder != FOLDER_INVALID) {
                /* FIXME Pass a GCancellable */
-               camel_folder_synchronize_sync (
-                       folder, FALSE, NULL,
-                       (driver->priv->error != NULL) ? NULL : &driver->priv->error);
+               if (camel_folder_synchronize_sync (folder, FALSE, NULL,
+                       (driver->priv->error != NULL) ? NULL : &driver->priv->error))
+                       camel_folder_refresh_info_sync (folder, NULL,
+                               (driver->priv->error != NULL) ? NULL : &driver->priv->error);
                camel_folder_thaw (folder);
                g_object_unref (folder);
        }
index 4b8cafb..7785b6a 100644 (file)
@@ -1043,7 +1043,11 @@ imapx_transfer_messages_to_sync (CamelFolder *source,
                g_object_unref (server);
        }
 
-       imapx_refresh_info_sync (dest, cancellable, NULL);
+       /* update destination folder only if not frozen, to not update
+          for each single message transfer during filtering
+        */
+       if (!camel_folder_is_frozen (dest))
+               imapx_refresh_info_sync (dest, cancellable, NULL);
 
        return success;
 }