X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-msg-view-window.c;h=d36cebe824561e120e7620e0b3e9654225fa8ed0;hb=2c7c0e311cf57d4c11d1666b04533cca6a00a880;hp=2271e1ea8dbb672fc741e4df3ef50989499b5b3c;hpb=005c243001f3db60f0b6176330227f0e98e26f48;p=modest diff --git a/src/widgets/modest-msg-view-window.c b/src/widgets/modest-msg-view-window.c index 2271e1e..d36cebe 100644 --- a/src/widgets/modest-msg-view-window.c +++ b/src/widgets/modest-msg-view-window.c @@ -283,7 +283,7 @@ static const GtkToggleActionEntry msg_view_toggle_action_entries [] = { MODEST_TYPE_MSG_VIEW_WINDOW, \ ModestMsgViewWindowPrivate)) /* globals */ -static GtkWindowClass *parent_class = NULL; +static ModestWindowParentClass *parent_class = NULL; /* uncomment the following if you have defined any signals */ static guint signals[LAST_SIGNAL] = {0}; @@ -2228,10 +2228,10 @@ view_msg_cb (ModestMailOperation *mail_op, modest_window_mgr_unregister_header (modest_runtime_get_window_mgr (), header); row_reference = (GtkTreeRowReference *) user_data; - if (canceled) { + self = (ModestMsgViewWindow *) modest_mail_operation_get_source (mail_op); + if (canceled || !self || MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self)->msg_view == NULL ) { if (row_reference) gtk_tree_row_reference_free (row_reference); - self = (ModestMsgViewWindow *) modest_mail_operation_get_source (mail_op); if (self) { /* Restore window title */ update_window_title (self); @@ -2245,7 +2245,6 @@ view_msg_cb (ModestMailOperation *mail_op, if (!modest_ui_actions_msg_retrieval_check (mail_op, header, msg)) { if (row_reference) gtk_tree_row_reference_free (row_reference); - self = (ModestMsgViewWindow *) modest_mail_operation_get_source (mail_op); if (self) { priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self); /* First we check if the parent is a folder window */ @@ -2309,7 +2308,6 @@ view_msg_cb (ModestMailOperation *mail_op, } /* Get the window */ - self = (ModestMsgViewWindow *) modest_mail_operation_get_source (mail_op); g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (self)); priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self); @@ -2329,8 +2327,14 @@ view_msg_cb (ModestMailOperation *mail_op, } /* Mark header as read */ - if (!(tny_header_get_flags (header) & TNY_HEADER_FLAG_SEEN)) + if (!(tny_header_get_flags (header) & TNY_HEADER_FLAG_SEEN)) { + gchar *uid; + tny_header_set_flag (header, TNY_HEADER_FLAG_SEEN); + uid = modest_tny_folder_get_header_unique_id (header); + modest_platform_emit_msg_read_changed_signal (uid, TRUE); + g_free (uid); + } /* Set new message */ if (priv->msg_view != NULL && TNY_IS_MSG_VIEW (priv->msg_view)) { @@ -2771,7 +2775,7 @@ on_decode_to_stream_async_handler (TnyMimePart *mime_part, account = modest_account_mgr_get_default_account (modest_runtime_get_account_mgr ()); msg = tny_camel_msg_new (); - tny_camel_msg_parse (TNY_CAMEL_MSG (msg), file_stream); + tny_camel_msg_parse (msg, file_stream); if (priv->top_msg) top_msg = g_object_ref (priv->top_msg); @@ -3120,6 +3124,7 @@ idle_save_mime_part_show_result (SaveMimePartInfo *info) } else { modest_platform_system_banner (NULL, NULL, _("mail_ib_file_operation_failed")); } + set_progress_hint (info->window, FALSE); save_mime_part_info_free (info, FALSE); gdk_threads_leave (); /* CHECKED */ @@ -3314,6 +3319,8 @@ save_mime_parts_to_file_with_checks (GtkWindow *parent, if (!is_ok) { save_mime_part_info_free (info, TRUE); } else { + /* Start progress and launch thread */ + set_progress_hint (info->window, TRUE); g_thread_create ((GThreadFunc)save_mime_part_to_file, info, FALSE, NULL); }