aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog9
-rw-r--r--mail/em-folder-view.c14
-rw-r--r--mail/message-list.c4
3 files changed, 21 insertions, 6 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 1aaad2de7a..9a008408a9 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,12 @@
+2004-05-24 Not Zed <NotZed@Ximian.com>
+
+ * message-list.c (regen_list_regened): pull the message from the
+ regen list before we check the list and pending uid.
+
+ * em-folder-view.c (emfv_enable_menus): remove the hack for
+ enabling select delete from here and put it in the right place.
+ (em_folder_view_get_popup_target): put it here so its consistent.
+
2004-05-22 Not Zed <NotZed@Ximian.com>
* mail-tools.c (mail_tool_uri_to_folder): put note_store back in.
diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c
index 3b6422da9e..94e805a87b 100644
--- a/mail/em-folder-view.c
+++ b/mail/em-folder-view.c
@@ -1621,16 +1621,16 @@ emfv_enable_menus(EMFolderView *emfv)
if (emfv->folder) {
t = em_folder_view_get_popup_target(emfv);
disable_mask = t->mask;
+
+ printf("\nenabling menu's\n");
+ printf("selected = %d\n", t->data.select.uids->len);
+
em_popup_target_free(t);
-
- /* always allow deleting of already-deleted messages
- * from the main menus/toolbar */
- if (!emfv->hide_deleted)
- disable_mask &= ~EM_POPUP_SELECT_DELETE;
} else {
disable_mask = ~0;
}
+
name = g_string_new("");
for (l = emfv->enable_map; l; l = l->next) {
EMFolderViewEnable *map = l->data;
@@ -1840,6 +1840,10 @@ em_folder_view_get_popup_target(EMFolderView *emfv)
if (message_list_hidden(emfv->list) != 0)
t->mask &= ~EM_FOLDER_VIEW_SELECT_HIDDEN;
+
+ /* See bug #54770 */
+ if (!emfv->hide_deleted)
+ t->mask &= ~EM_POPUP_SELECT_DELETE;
return t;
}
diff --git a/mail/message-list.c b/mail/message-list.c
index 58f579dc4b..d621281433 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -3516,6 +3516,8 @@ regen_list_regened (struct _mail_msg *mm)
g_free (m->ml->search);
m->ml->search = m->search;
+ m->ml->regen = g_list_remove(m->ml->regen, m);
+
if (m->ml->regen == NULL && m->ml->pending_select_uid) {
char *uid = m->ml->pending_select_uid;
@@ -3549,7 +3551,7 @@ regen_list_free (struct _mail_msg *mm)
if (m->changes)
camel_folder_change_info_free (m->changes);
- /* we have to poke this here since we might've been cancelled and regened wont get called */
+ /* we have to poke this here as well since we might've been cancelled and regened wont get called */
m->ml->regen = g_list_remove(m->ml->regen, m);
g_object_unref(m->ml);