[anjal] Fix quite a lot of issues.
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjal] Fix quite a lot of issues.
- Date: Thu, 19 Mar 2009 02:23:58 -0400 (EDT)
commit 65527facff6920c5444f6fe61af744740e86f35b
Author: Srinivasa Ragavan <sragavan novell com>
Date: Thu Mar 19 11:57:06 2009 +0530
Fix quite a lot of issues.
---
src/mail-message-view.c | 37 +++++++++++++++++++++++++++++--------
1 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/src/mail-message-view.c b/src/mail-message-view.c
index 3a30542..6f69d1f 100644
--- a/src/mail-message-view.c
+++ b/src/mail-message-view.c
@@ -29,7 +29,7 @@
#include "mail/mail-session.h"
#include "mail/mail-ops.h"
#include "e-msg-composer.h"
-
+#include "misc/e-spinner.h"
#include <gdk/gdkkeysyms.h>
extern char *scolor_norm;
@@ -41,6 +41,7 @@ struct _MailMessageViewPrivate {
GtkWidget *arrow;
GtkWidget *focus;
CamelMimeMessage *msg;
+ CamelMessageInfo *info;
GtkWidget *header_row;
const char *active_color;
GtkWidget *spinner;
@@ -70,9 +71,13 @@ mail_message_view_finalize (GObject *object)
{
MailMessageView *shell = (MailMessageView *)object;
MailMessageViewPrivate *priv = shell->priv;
-
+
+ g_object_unref (shell->efwd);
+ g_free (priv->uid);
+ camel_object_unref (priv->msg);
+ camel_message_info_free (priv->info);
g_free (priv);
-
+
G_OBJECT_CLASS (mail_message_view_parent_class)->finalize (object);
}
@@ -298,6 +303,23 @@ filter_date (time_t date)
return g_strdup (buf);
}
+static int
+mark_mail_read (GtkWidget *w, GdkEventExpose *event, MailMessageView *mmv)
+{
+ printf("mark %s as read: %s\n", camel_message_info_subject(mmv->priv->info),mmv->priv->info->uid );
+ g_signal_handlers_disconnect_by_func(w, mark_mail_read, mmv);
+ return FALSE;
+}
+
+static void
+mmv_finished (WebKitWebView *webkitwebview, WebKitWebFrame *arg1, gpointer user_data)
+{
+ MailMessageView *mmview = (MailMessageView *) user_data;
+ gtk_widget_set_size_request (webkitwebview, -1, webkit_web_frame_get_height(arg1));
+
+ /* Connect on expose, and mark mail as read on expose, when the mail is actually seen */
+ g_signal_connect (webkitwebview, "expose-event" , mark_mail_read, mmview);
+}
static void
mmv_loaded (WebKitWebView *webkitwebview, WebKitWebFrame *arg1, gpointer user_data)
@@ -368,7 +390,7 @@ mail_message_view_create_webview (MailMessageView *mmv, GtkWidget *box)
{
WebKitWebView *web = webkit_web_view_new ();
- g_signal_connect (web, "load-finished", G_CALLBACK(mmv_loaded), mmv);
+ g_signal_connect (web, "load-finished", G_CALLBACK(mmv_finished), mmv);
g_signal_connect (web, "load-committed", G_CALLBACK(mmv_loaded), mmv);
g_signal_connect (web, "load-started", G_CALLBACK(mmv_loaded), mmv);
@@ -397,7 +419,7 @@ mail_message_view_set_message (MailMessageView *mmview, CamelFolder *folder, con
mmview->priv->active_color = scolor_norm;
/* FIXME: Ref & Use */
- mmview->priv->uid = uid;
+ mmview->priv->uid = g_strdup(uid);
mmview->priv->folder = folder;
box = gtk_vbox_new (FALSE, 0);
@@ -408,7 +430,7 @@ mail_message_view_set_message (MailMessageView *mmview, CamelFolder *folder, con
g_signal_connect (mmview->short_header, "button-press-event", G_CALLBACK(mmv_collapse_view), mmview);
info = camel_folder_get_message_info (folder, uid);
-
+ mmview->priv->info = info;
header_row = gtk_hbox_new (FALSE, 0);
gtk_container_add (mmview->short_header, header_row);
gtk_widget_show (header_row);
@@ -544,7 +566,7 @@ mail_message_view_set_message (MailMessageView *mmview, CamelFolder *folder, con
/* Default: Body would be hidden */
mmview->body = gtk_vbox_new (FALSE, 0);
-
+
//gtk_box_pack_start (header_row, mmview->priv->spinner, FALSE, FALSE, 0);
//gtk_widget_hide (mmview->priv->spinner);
@@ -593,7 +615,6 @@ mail_message_view_set_message (MailMessageView *mmview, CamelFolder *folder, con
if (!(info->flags & CAMEL_MESSAGE_SEEN))
mmv_show(mmview);
- camel_message_info_free(info);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]