}
static void
-new_messages_arrived (ModestMailOperation *self,
- TnyList *new_headers,
- gpointer user_data)
+update_account_cb (ModestMailOperation *self,
+ TnyList *new_headers,
+ gpointer user_data)
{
GObject *source;
gboolean show_visual_notifications;
source = modest_mail_operation_get_source (self);
show_visual_notifications = (source) ? FALSE : TRUE;
- if (source)
- g_object_unref (source);
/* Notify new messages have been downloaded. If the
send&receive was invoked by the user then do not show any
g_object_unref (actually_new_list);
}
+ if (source) {
+ ModestHeaderView *header_view = NULL;
+
+ /* Refresh the current view */
+#ifdef MODEST_TOOLKIT_HILDON2
+ if (MODEST_IS_HEADER_WINDOW (source))
+ header_view = modest_header_window_get_header_view ((ModestHeaderWindow *) source);
+#else
+ if (MODEST_IS_MAIN_WINDOW (source))
+ header_view = modest_main_window_get_child_widget ((ModestMainWindow *) source,
+ MODEST_MAIN_WINDOW_WIDGET_TYPE_HEADER_VIEW);
+#endif
+ if (header_view) {
+ TnyFolder *folder = modest_header_view_get_folder (header_view);
+ if (folder) {
+ /* We must clear first, because otherwise set_folder will ignore
+ the change as the folders are the same */
+ modest_header_view_clear (header_view);
+ modest_header_view_set_folder (header_view, folder, TRUE,
+ (ModestWindow *) source, NULL, NULL);
+ g_object_unref (folder);
+ }
+ }
+
+ g_object_unref (source);
+ }
}
typedef struct {
/* Send & receive. */
modest_mail_operation_update_account (info->mail_op, info->account_name, info->poke_status, info->interactive,
- new_messages_arrived, info->win);
+ update_account_cb, info->win);
clean:
/* Frees */
}
static void
-modest_header_view_set_folder_intern (ModestHeaderView *self, TnyFolder *folder)
+modest_header_view_set_folder_intern (ModestHeaderView *self,
+ TnyFolder *folder,
+ gboolean refresh)
{
TnyFolderType type;
TnyList *headers;
be added again by tny_gtk_header_list_model_set_folder, so
we'd end up with duplicate headers. sergio */
tny_gtk_header_list_model_set_folder (TNY_GTK_HEADER_LIST_MODEL(headers),
- folder, FALSE,
+ folder, refresh,
set_folder_intern_get_headers_async_cb,
NULL, self);
ModestMailOperation *mail_op = NULL;
/* Set folder in the model */
- modest_header_view_set_folder_intern (self, folder);
+ modest_header_view_set_folder_intern (self, folder, refresh);
/* Pick my reference. Nothing to do with the mail operation */
priv->folder = g_object_ref (folder);