aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-view.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2005-04-08 12:34:25 +0800
committerMichael Zucci <zucchi@src.gnome.org>2005-04-08 12:34:25 +0800
commit3262cba6ce9e55ae6afd71dd7cee7173992fa493 (patch)
tree0ef215df4550d905711ca6662e30fedab20cb376 /mail/em-folder-view.c
parent74adbf2671566b78409acb8ac33088498bd33ea2 (diff)
downloadgsoc2013-evolution-3262cba6ce9e55ae6afd71dd7cee7173992fa493.tar
gsoc2013-evolution-3262cba6ce9e55ae6afd71dd7cee7173992fa493.tar.gz
gsoc2013-evolution-3262cba6ce9e55ae6afd71dd7cee7173992fa493.tar.bz2
gsoc2013-evolution-3262cba6ce9e55ae6afd71dd7cee7173992fa493.tar.lz
gsoc2013-evolution-3262cba6ce9e55ae6afd71dd7cee7173992fa493.tar.xz
gsoc2013-evolution-3262cba6ce9e55ae6afd71dd7cee7173992fa493.tar.zst
gsoc2013-evolution-3262cba6ce9e55ae6afd71dd7cee7173992fa493.zip
removed. (em_utils_handle_receipt): asynchronously load message if none is
2005-04-08 Not Zed <NotZed@Ximian.com> * em-composer-utils.c (em_utils_ask_receipt): removed. (em_utils_handle_receipt): asynchronously load message if none is supplied. * em-folder-view.c (emfv_set_seen): pass message in. * em-composer-utils.c (em_utils_ask_receipt): strip leading lwsp on the disposition address. (em_utils_ask_receipt): added a comment about which rfc. (em_utils_handle_receipt): merged ask_receipt into here. Changed api to take a message instead, so we don't have to load the message every time. Also only set receipt-handled if we have a receipt requested in the first place. 2005-04-05 ERDI Gergo <cactus@cactus.rulez.org> * mail-errors.xml: Added new dialog for receipt requests * em-composer-utils.c (em_utils_guess_account): Made guess_account public, to be callable from em-folder-view (em_utils_send_receipt): New function to send an RFC 2298-compliant message delivery notification svn path=/trunk/; revision=29185
Diffstat (limited to 'mail/em-folder-view.c')
-rw-r--r--mail/em-folder-view.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c
index 6b6db82332..8a5690ef85 100644
--- a/mail/em-folder-view.c
+++ b/mail/em-folder-view.c
@@ -64,6 +64,7 @@
#include <bonobo/bonobo-ui-util.h>
#include "widgets/misc/e-charset-picker.h"
+#include "widgets/misc/e-error.h"
#include <e-util/e-dialog-utils.h>
#include <e-util/e-icon-factory.h>
@@ -125,6 +126,8 @@ static void emfv_setting_setup(EMFolderView *emfv);
static void emfv_on_url_cb(GObject *emitter, const char *url, EMFolderView *emfv);
static void emfv_on_url(EMFolderView *emfv, const char *uri, const char *nice_uri);
+static void emfv_set_seen (EMFolderView *emfv, const char *uid);
+
static gboolean emfv_popup_menu (GtkWidget *widget);
static const EMFolderViewEnable emfv_enable_map[];
@@ -441,6 +444,8 @@ em_folder_view_open_selected(EMFolderView *emfv)
em_folder_view_set_folder((EMFolderView *)emmb, emfv->folder, emfv->folder_uri);
em_folder_view_set_message((EMFolderView *)emmb, views->pdata[i], FALSE);
gtk_widget_show(emmb->window);
+ /* TODO: this loads the message twice (!) */
+ em_utils_handle_receipt (emfv->folder, uids->pdata[i], NULL);
g_free(views->pdata[i]);
}
g_ptr_array_free(views, TRUE);
@@ -2101,7 +2106,7 @@ do_mark_seen (gpointer user_data)
MessageList *list = emfv->list;
if (mst->uid && list->cursor_uid && !strcmp (mst->uid, list->cursor_uid))
- camel_folder_set_message_flags (emfv->folder, mst->uid, CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
+ emfv_set_seen (emfv, mst->uid);
return FALSE;
}
@@ -2147,7 +2152,7 @@ emfv_list_done_message_selected(CamelFolder *folder, const char *uid, CamelMimeM
emfv->priv->seen_id = g_timeout_add_full(G_PRIORITY_DEFAULT_IDLE, emfv->mark_seen_timeout,
(GSourceFunc)do_mark_seen, mst, (GDestroyNotify)mst_free);
} else {
- camel_folder_set_message_flags(emfv->folder, uid, CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
+ emfv_set_seen (emfv, uid);
}
}
@@ -2421,6 +2426,18 @@ emfv_format_popup_event(EMFormatHTMLDisplay *efhd, GdkEventButton *event, const
return TRUE;
}
+static void
+emfv_set_seen(EMFolderView *emfv, const char *uid)
+{
+ guint32 old_flags = camel_folder_get_message_flags(emfv->folder, uid);
+
+ /* If we're setting the SEEN flag on a message, handle receipt requests */
+ if (!(old_flags & CAMEL_MESSAGE_SEEN))
+ em_utils_handle_receipt(emfv->folder, uid, (CamelMimeMessage *)((EMFormat *)emfv->preview)->message);
+
+ camel_folder_set_message_flags(emfv->folder, uid, CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
+}
+
/* keep these two tables in sync */
enum {
EMFV_ANIMATE_IMAGES = 1,