Re: [Evolution] 2 itsy-bitsy patches



I think the envelope icon patch will be quite nice.  Something
else I'd really like to see is a different icon being used though,
since the current one makes these fake headers look too much like
an e-mail.  Perhaps a cascaded envelope instead, with a slightly
different color?

Dan

Hi,

I just gave CVS Evolution a go, and came up with one tiny thing that
bugged me and a small addition to the key bindings.

The thing that bugged me was the envelope icon in the mail view. When
the message is actually a fake message (used to anchor the root of a
message thread when the actual root isn't around) the envelope always
appears unopened. The first attached patch
(evolution-thread-unread.patch) causes this envelope to only appear
unread if that sub thread has unread messages (in the same way that the
boldness of the subject etc works).

The other thing is a binding for first unread mail (as opposed to next
unread). The second attachment (evolution-first-unread.patch) binds
Ctrl-N to first unread (with N remaining next unread). I also bound last
unread to Ctrl-P for good measure. I'm not sure if you have any policy
on keybindings though so perhaps this isn't allowed, I certainly find it
useful though.

Perhaps it would be useful to move these options to a menu somewhere
(folder menu?) since then the bindings would be available even if the
message list wasn't focused. Although in that case it would probably be
worth making the bindingd Ctrl-N and Ctrl-Shift-N or something...

Cheers,
Ian

-- 
Ian Campbell
Churchill College, Cambridge.
Index: mail/message-list.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/message-list.c,v
retrieving revision 1.198
diff -u -r1.198 message-list.c
--- mail/message-list.c       2001/01/07 03:45:50     1.198
+++ mail/message-list.c       2001/01/10 19:13:18
@@ -867,6 +867,9 @@
              return (void *)subtree_unread(message_list, 
e_tree_model_node_get_first_child(etm, path));
 
      case COL_MESSAGE_STATUS:
+             /* The same applies as for COL_UNREAD just above */
+             return GINT_TO_POINTER(subtree_unread(message_list, 
e_tree_model_node_get_first_child(etm,path))?0:1);
+
      case COL_FLAGGED:
      case COL_SCORE:
      case COL_ATTACHMENT:
Index: mail/folder-browser.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/folder-browser.c,v
retrieving revision 1.113
diff -u -r1.113 folder-browser.c
--- mail/folder-browser.c     2001/01/09 03:31:30     1.113
+++ mail/folder-browser.c     2001/01/10 20:30:22
@@ -811,7 +811,7 @@
 static int
 etable_key (ETable *table, int row, int col, GdkEvent *ev, FolderBrowser *fb)
 {
-     if ((ev->key.state & !(GDK_SHIFT_MASK | GDK_LOCK_MASK)) != 0)
+     if ((ev->key.state & !(GDK_SHIFT_MASK | GDK_LOCK_MASK | 
GDK_CONTROL_MASK)) != 0)
              return FALSE;
 
      switch (ev->key.keyval) {
@@ -821,6 +821,9 @@
              GtkAdjustment *vadj;
              gfloat page_size;
 
+             if ( ev->key.state & GDK_CONTROL_MASK ) 
+                     return FALSE;
+
              vadj = e_scroll_frame_get_vadjustment 
(fb->mail_display->scroll);
              page_size = vadj->page_size - vadj->step_increment;
 
@@ -842,6 +845,9 @@
      
      case GDK_Delete:
      case GDK_KP_Delete:
+             if ( ev->key.state & GDK_CONTROL_MASK ) 
+                     return FALSE;
+
              delete_msg (NULL, fb);
              message_list_select (fb->message_list, row,
                                   MESSAGE_LIST_SELECT_NEXT,
@@ -850,24 +856,30 @@
 
      case GDK_Home:
      case GDK_KP_Home:
+             if ( ev->key.state & GDK_CONTROL_MASK ) 
+                     return FALSE;
+
              message_list_select(fb->message_list, 0, 
MESSAGE_LIST_SELECT_NEXT, 0, 0);
              return TRUE;
              
      case GDK_End:
      case GDK_KP_End:
+             if ( ev->key.state & GDK_CONTROL_MASK ) 
+                     return FALSE;
+
              message_list_select(fb->message_list, -1, 
MESSAGE_LIST_SELECT_PREVIOUS, 0, 0);
              return TRUE;
              
      case 'n':
      case 'N':
-             message_list_select (fb->message_list, row,
-                                  MESSAGE_LIST_SELECT_NEXT,
-                                  0, CAMEL_MESSAGE_SEEN);
-             return TRUE;
+                     message_list_select (fb->message_list, (ev->key.state & 
GDK_CONTROL_MASK)?0:row,
+                                          MESSAGE_LIST_SELECT_NEXT,
+                                          0, CAMEL_MESSAGE_SEEN);
+                     return TRUE;
 
      case 'p':
      case 'P':
-             message_list_select (fb->message_list, row,
+             message_list_select (fb->message_list, (ev->key.state & 
GDK_CONTROL_MASK)?-1:row,
                                   MESSAGE_LIST_SELECT_PREVIOUS,
                                   0, CAMEL_MESSAGE_SEEN);
              return TRUE;




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]