aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog13
-rw-r--r--mail/folder-browser.c2
-rw-r--r--mail/mail-callbacks.c4
-rw-r--r--mail/message-list.c36
-rw-r--r--mail/message-list.h1
5 files changed, 45 insertions, 11 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index ce90b512c2..d77c95b870 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,16 @@
+2001-07-06 Jason Leach <jleach@ximian.com>
+
+ * mail-callbacks.c (delete_msg): Select the very next message
+ after deleting, not the next undeleted (it can make things jump
+ around in annoying ways if you are deleting many messages), bug #4032.
+
+ * folder-browser.c: Forgot to commit the "Mark as Important" right
+ click menu item.
+
+ * message-list.c (message_list_set_folder): Setup the strikeout
+ column here (after we've gotten the folder) so we can disable
+ strikeouts for vtrash folders, part of bug #2224.
+
2001-07-06 Dan Winship <danw@ximian.com>
* mail-folder-cache.c (mail_folder_cache_set_folder_browser): Fix
diff --git a/mail/folder-browser.c b/mail/folder-browser.c
index 497a65ddc5..db3a008f65 100644
--- a/mail/folder-browser.c
+++ b/mail/folder-browser.c
@@ -1227,6 +1227,8 @@ static EPopupMenu context_menu[] = {
GTK_SIGNAL_FUNC (mark_as_seen), NULL, CAN_MARK_READ },
{ N_("Mark as U_nread"), NULL,
GTK_SIGNAL_FUNC (mark_as_unseen), NULL, CAN_MARK_UNREAD },
+ { N_("Mark as _Important"), NULL,
+ GTK_SIGNAL_FUNC (mark_as_important), NULL, 0 },
SEPARATOR,
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c
index 112221df77..34ea9e4560 100644
--- a/mail/mail-callbacks.c
+++ b/mail/mail-callbacks.c
@@ -1533,11 +1533,13 @@ delete_msg (GtkWidget *button, gpointer user_data)
deleted = flag_messages (fb, CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN,
CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN);
+
+ /* Select the next message if we are only deleting one message */
if (deleted == 1) {
row = e_tree_row_of_node (fb->message_list->tree,
e_tree_get_cursor (fb->message_list->tree));
message_list_select (fb->message_list, row, MESSAGE_LIST_SELECT_NEXT,
- 0, CAMEL_MESSAGE_DELETED);
+ 0, 0);
}
}
diff --git a/mail/message-list.c b/mail/message-list.c
index 61a99abed3..a680463698 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -959,7 +959,6 @@ message_list_create_extras (void)
/* date cell */
cell = e_cell_date_new (NULL, GTK_JUSTIFY_LEFT);
gtk_object_set (GTK_OBJECT (cell),
- "strikeout_column", COL_DELETED,
"bold_column", COL_UNREAD,
"color_column", COL_COLOUR,
NULL);
@@ -968,7 +967,6 @@ message_list_create_extras (void)
/* text cell */
cell = e_cell_text_new (NULL, GTK_JUSTIFY_LEFT);
gtk_object_set (GTK_OBJECT (cell),
- "strikeout_column", COL_DELETED,
"bold_column", COL_UNREAD,
"color_column", COL_COLOUR,
NULL);
@@ -981,7 +979,6 @@ message_list_create_extras (void)
/* size cell */
cell = e_cell_size_new (NULL, GTK_JUSTIFY_RIGHT);
gtk_object_set (GTK_OBJECT (cell),
- "strikeout_column", COL_DELETED,
"bold_column", COL_UNREAD,
"color_column", COL_COLOUR,
NULL);
@@ -1166,8 +1163,6 @@ message_list_class_init (GtkObjectClass *object_class)
static void
message_list_construct (MessageList *message_list)
{
- ETableExtras *extras;
-
message_list->model =
e_tree_memory_callbacks_new (ml_tree_icon_at,
@@ -1198,18 +1193,16 @@ message_list_construct (MessageList *message_list)
/*
* The etree
*/
- extras = message_list_create_extras ();
+ message_list->extras = message_list_create_extras ();
e_tree_scrolled_construct_from_spec_file (E_TREE_SCROLLED (message_list),
message_list->model,
- extras,
+ message_list->extras,
EVOLUTION_ETSPECDIR "/message-list.etspec",
NULL);
message_list->tree = e_tree_scrolled_get_tree(E_TREE_SCROLLED (message_list));
e_tree_root_node_set_visible (message_list->tree, FALSE);
- gtk_object_sink (GTK_OBJECT (extras));
-
gtk_signal_connect (GTK_OBJECT (message_list->tree), "cursor_activated",
GTK_SIGNAL_FUNC (on_cursor_activated_cmd),
message_list);
@@ -1905,7 +1898,30 @@ message_list_set_folder (MessageList *message_list, CamelFolder *camel_folder, g
}
if (camel_folder) {
- /* build the etree suitable for this folder */
+ /* Setup the strikeout effect for non-vtrash folders */
+ if (!CAMEL_IS_VTRASH_FOLDER (camel_folder)) {
+ ECell *cell;
+
+ cell = e_table_extras_get_cell (message_list->extras, "render_date");
+ gtk_object_set (GTK_OBJECT (cell),
+ "strikeout_column", COL_DELETED,
+ NULL);
+
+ cell = e_table_extras_get_cell (message_list->extras, "render_text");
+ gtk_object_set (GTK_OBJECT (cell),
+ "strikeout_column", COL_DELETED,
+ NULL);
+
+ cell = e_table_extras_get_cell (message_list->extras, "render_size");
+ gtk_object_set (GTK_OBJECT (cell),
+ "strikeout_column", COL_DELETED,
+ NULL);
+ }
+
+ /* Now we're finally done with the extras */
+ gtk_object_sink (GTK_OBJECT (message_list->extras));
+
+ /* Build the etree suitable for this folder */
message_list_setup_etree (message_list, outgoing);
camel_object_hook_event (CAMEL_OBJECT (camel_folder), "folder_changed",
diff --git a/mail/message-list.h b/mail/message-list.h
index 4ec10f61ca..6482a09210 100644
--- a/mail/message-list.h
+++ b/mail/message-list.h
@@ -50,6 +50,7 @@ struct _MessageList {
ETreeModel *model;
ETree *tree;
ETreePath tree_root;
+ ETableExtras *extras;
/* The folder */
CamelFolder *folder;