static void
-tranasfer_msgs_from_viewer_cb (const GObject *object, gpointer user_data)
+transfer_msgs_from_viewer_cb (const GObject *object, gpointer user_data)
{
ModestMsgViewWindow *self = NULL;
- gboolean found = FALSE;
g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (object));
self = MODEST_MSG_VIEW_WINDOW (object);
- found = modest_msg_view_window_select_first_message (self);
- g_return_if_fail (found);
+ /* If there are not more messages don't do anything. The
+ viewer will show the same message */
+ if (!modest_msg_view_window_select_first_message (self))
+ return;
}
void
headers,
TNY_FOLDER (folder_store),
TRUE,
- tranasfer_msgs_from_viewer_cb,
+ transfer_msgs_from_viewer_cb,
NULL);
g_object_unref (G_OBJECT (mail_op));
}
{
TnyList *headers_list;
TnyIterator *iter;
+ TnyHeader *header;
+ TnyFolder *folder;
/* Get headers */
headers_list = get_selected_headers (win);
if (!headers_list)
return;
- /* Call the function for each header */
+ /* Get the folder */
iter = tny_list_create_iterator (headers_list);
- while (!tny_iterator_is_done (iter)) {
- TnyHeader *header;
+ header = TNY_HEADER (tny_iterator_get_current (iter));
+ folder = tny_header_get_folder (header);
+ g_object_unref (header);
+ /* Call the function for each header */
+ while (!tny_iterator_is_done (iter)) {
header = TNY_HEADER (tny_iterator_get_current (iter));
func (header, win, user_data);
g_object_unref (header);
tny_iterator_next (iter);
}
+
+ /* Trick: do a poke status in order to speed up the signaling
+ of observers */
+ tny_folder_poke_status (folder);
+
+ /* Frees */
+ g_object_unref (folder);
g_object_unref (iter);
g_object_unref (headers_list);
}