From 3d4b8597a33fdcf17b5bf95b05f9d2713f786e06 Mon Sep 17 00:00:00 2001 From: Colin Leroy Date: Tue, 20 Nov 2007 20:13:59 +0000 Subject: [PATCH] 2007-11-20 [colin] 3.1.0cvs11 * src/folderview.c * src/main.c * src/mainwindow.c Fix bug 1396, 'Crash on disabling a filter while it is processing' --- ChangeLog | 8 ++++++++ PATCHSETS | 1 + configure.ac | 2 +- src/folderview.c | 12 +++++++++--- src/main.c | 2 ++ src/mainwindow.c | 2 ++ 6 files changed, 23 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1d51133a8..016368915 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-11-20 [colin] 3.1.0cvs11 + + * src/folderview.c + * src/main.c + * src/mainwindow.c + Fix bug 1396, 'Crash on disabling a filter + while it is processing' + 2007-11-20 [paul] 3.1.0cvs10 * src/folder.c diff --git a/PATCHSETS b/PATCHSETS index 77fe59e8f..66b667151 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -3068,3 +3068,4 @@ ( cvs diff -u -r 1.1.2.49 -r 1.1.2.50 src/prefs_summaries.c; cvs diff -u -r 1.395.2.336 -r 1.395.2.337 src/summaryview.c; ) > 3.1.0cvs8.patchset ( cvs diff -u -r 1.382.2.424 -r 1.382.2.425 src/compose.c; ) > 3.1.0cvs9.patchset ( cvs diff -u -r 1.213.2.166 -r 1.213.2.167 src/folder.c; ) > 3.1.0cvs10.patchset +( cvs diff -u -r 1.207.2.187 -r 1.207.2.188 src/folderview.c; cvs diff -u -r 1.115.2.176 -r 1.115.2.177 src/main.c; cvs diff -u -r 1.274.2.220 -r 1.274.2.221 src/mainwindow.c; ) > 3.1.0cvs11.patchset diff --git a/configure.ac b/configure.ac index 87bea9cb2..cbe6ffe03 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=1 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=10 +EXTRA_VERSION=11 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/folderview.c b/src/folderview.c index eee8a5f98..f0733d8de 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -1936,13 +1936,17 @@ static void folderview_set_sens_and_popup_menu(FolderView *folderview, gint row, if ( FOLDER_TYPE(item->folder) == F_NEWS || FOLDER_TYPE(item->folder) == F_IMAP ) SET_SENS("/Download messages", !item->no_select); + SET_SENS("/Mark all read", item->unread_msgs >= 1); SET_SENS("/Search folder...", item->total_msgs >= 1 && folderview->selected == folderview->opened); - SET_SENS("/Run processing rules", item->prefs->processing && - item->total_msgs >= 1); SET_SENS("/Properties...", !item->no_select); - SET_SENS("/Processing...", item->node->parent != NULL && !item->no_select); + + SET_SENS("/Run processing rules", item->prefs->processing && + item->total_msgs >= 1 && !item->processing_pending); + SET_SENS("/Processing...", item->node->parent != NULL && + !item->no_select && !item->processing_pending); + if (item == folder->trash || item == special_trash || folder_has_parent_of_type(item, F_TRASH)) { GSList *msglist = folder_item_get_msg_list(item); @@ -2485,7 +2489,9 @@ static void folderview_run_processing_cb(FolderView *folderview, guint action, g_return_if_fail(item != NULL); g_return_if_fail(item->folder != NULL); + item->processing_pending = TRUE; folder_item_apply_processing(item); + item->processing_pending = FALSE; } static void folderview_property_cb(FolderView *folderview, guint action, diff --git a/src/main.c b/src/main.c index 763344bc5..7e69f2f22 100644 --- a/src/main.c +++ b/src/main.c @@ -1683,7 +1683,9 @@ static void initial_processing(FolderItem *item, gpointer data) if (item->prefs->enable_processing) { + item->processing_pending = TRUE; folder_item_apply_processing(item); + item->processing_pending = FALSE; } STATUSBAR_POP(mainwin); diff --git a/src/mainwindow.c b/src/mainwindow.c index e992023cf..eb2338063 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -4041,7 +4041,9 @@ static void process_cb(MainWindow *mainwin, guint action, GtkWidget *widget) FolderItem *item = mainwin->summaryview->folder_item; g_return_if_fail(item != NULL); + item->processing_pending = TRUE; folder_item_apply_processing(item); + item->processing_pending = FALSE; } static void execute_summary_cb(MainWindow *mainwin, guint action, -- 2.25.1