[anjal] Keybindings support
- From: Srinivasa Ragavan <sragavan src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjal] Keybindings support
- Date: Thu, 2 Apr 2009 04:40:39 -0400 (EDT)
commit ec9c1d9e4d6b4bae5214491fc5293dee1d785f1d
Author: Srinivasa Ragavan <sragavan novell com>
Date: Thu Apr 2 14:05:08 2009 +0530
Keybindings support
---
src/mail-message-view.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/src/mail-message-view.c b/src/mail-message-view.c
index 17a87ee..f237dc9 100644
--- a/src/mail-message-view.c
+++ b/src/mail-message-view.c
@@ -216,9 +216,46 @@ mmv_collapse (MailMessageView *mmv)
mmv_show (mmv);
}
+static void
+mmv_delete (MailMessageView *mmv, gboolean del)
+{
+ if (del) {
+ camel_message_info_set_flags(mmv->priv->info, CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_DELETED, CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_DELETED );
+ g_signal_emit (mmv, signals[MESSAGE_REMOVED], 0);
+ } else
+ camel_message_info_set_flags(mmv->priv->info, CAMEL_MESSAGE_DELETED, 0 );
+}
+
+static void
+mmv_junk (MailMessageView *mmv, gboolean junk)
+{
+ if (junk)
+ camel_message_info_set_flags(mmv->priv->info, CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_JUNK|CAMEL_MESSAGE_NOTJUNK|CAMEL_MESSAGE_JUNK_LEARN, CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_JUNK|CAMEL_MESSAGE_JUNK_LEARN);
+ else
+ camel_message_info_set_flags(mmv->priv->info, CAMEL_MESSAGE_JUNK|CAMEL_MESSAGE_NOTJUNK|CAMEL_MESSAGE_JUNK_LEARN, CAMEL_MESSAGE_NOTJUNK|CAMEL_MESSAGE_JUNK_LEARN);
+}
+
+static void
+mmv_read (MailMessageView *mmv, gboolean read)
+{
+ if (read) {
+ camel_message_info_set_flags(mmv->priv->info, CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
+ gtk_widget_set_sensitive (mmv->priv->unread_image, FALSE);
+ gtk_label_set_markup (mmv->sub_details, mmv->priv->normal[0]);
+ gtk_label_set_markup (mmv->date_details, mmv->priv->normal[1]);
+ } else {
+ camel_message_info_set_flags(mmv->priv->info, CAMEL_MESSAGE_SEEN|CAMEL_MESSAGE_DELETED, 0);
+ gtk_widget_set_sensitive (mmv->priv->unread_image, TRUE);
+ gtk_label_set_markup (mmv->sub_details, mmv->priv->bold[0]);
+ gtk_label_set_markup (mmv->date_details, mmv->priv->bold[1]);
+ }
+}
+
static gboolean
mmv_key_press (GtkWidget *w, GdkEventKey *event, MailMessageView *mmv)
{
+ gboolean shift = event->state & GDK_SHIFT_MASK ? TRUE : FALSE;
+
switch (event->keyval) {
case GDK_Return:
case GDK_KP_Enter:
@@ -248,6 +285,21 @@ mmv_key_press (GtkWidget *w, GdkEventKey *event, MailMessageView *mmv)
if (GTK_WIDGET_VISIBLE(mmv->body))
mmv_hide(mmv);
break;
+ case GDK_D:
+ case GDK_d:
+ if (!(event->state & GDK_CONTROL_MASK))
+ return FALSE;
+ case GDK_Delete:
+ mmv_delete (mmv, !shift);
+ break;
+ case GDK_J:
+ case GDK_j:
+ mmv_junk (mmv, !shift);
+ break;
+ case GDK_M:
+ case GDK_m:
+ mmv_read(mmv, !shift);
+
default:
return FALSE;
};
@@ -953,3 +1005,4 @@ mail_message_view_get_unread(MailMessageView *mmv)
{
return !(camel_message_info_flags(mmv->priv->info) & CAMEL_MESSAGE_SEEN);
}
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]