talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit bf96e0b19b838c9eb511883d04968f798f66de70
parent 6db84443a2c59d6ebca195a831f503d704a0d2e5
Author: Paweł Pękala <c0rn@gazeta.pl>
Date:   Fri,  9 Dec 2011 20:29:23 +0000

2011-12-09 [pawel]	3.7.10cvs112

	* src/summaryview.c
	* src/gtk/quicksearch.c
	* src/gtk/quicksearch.h
		Invalidate quicksearch root folder when removed
		Fixes bug #2560 'crash when unsubscribing newsgroup and
		having active search field'

Diffstat:
MChangeLog | 9+++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/gtk/quicksearch.c | 7++++++-
Msrc/gtk/quicksearch.h | 1+
Msrc/summaryview.c | 6++++--
6 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,12 @@ +2011-12-09 [pawel] 3.7.10cvs112 + + * src/summaryview.c + * src/gtk/quicksearch.c + * src/gtk/quicksearch.h + Invalidate quicksearch root folder when removed + Fixes bug #2560 'crash when unsubscribing newsgroup and + having active search field' + 2011-12-08 [pawel] 3.7.10cvs111 * src/mimeview.c diff --git a/PATCHSETS b/PATCHSETS @@ -4315,3 +4315,4 @@ ( cvs diff -u -r 1.274.2.339 -r 1.274.2.340 src/mainwindow.c; cvs diff -u -r 1.94.2.224 -r 1.94.2.225 src/messageview.c; ) > 3.7.10cvs109.patchset ( cvs diff -u -r 1.382.2.596 -r 1.382.2.597 src/compose.c; ) > 3.7.10cvs110.patchset ( cvs diff -u -r 1.83.2.183 -r 1.83.2.184 src/mimeview.c; ) > 3.7.10cvs111.patchset +( cvs diff -u -r 1.395.2.440 -r 1.395.2.441 src/summaryview.c; cvs diff -u -r 1.1.2.106 -r 1.1.2.107 src/gtk/quicksearch.c; cvs diff -u -r 1.1.2.22 -r 1.1.2.23 src/gtk/quicksearch.h; ) > 3.7.10cvs112.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=10 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=111 +EXTRA_VERSION=112 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/gtk/quicksearch.c b/src/gtk/quicksearch.c @@ -50,7 +50,6 @@ struct _QuickSearchRequest { QuickSearchType type; gchar *matchstring; - FolderItem *folderItem; gboolean recursive; }; typedef struct _QuickSearchRequest QuickSearchRequest; @@ -1511,6 +1510,12 @@ void quicksearch_reset_cur_folder_item(QuickSearch *quicksearch) quicksearch->root_folder_item = NULL; } +void quicksearch_folder_item_invalidate(QuickSearch *quicksearch, FolderItem *item) +{ + if (quicksearch->root_folder_item == item) + quicksearch->root_folder_item = NULL; +} + gboolean quicksearch_is_in_typing(QuickSearch *quicksearch) { return quicksearch->in_typing; diff --git a/src/gtk/quicksearch.h b/src/gtk/quicksearch.h @@ -65,4 +65,5 @@ gboolean quicksearch_is_fast(QuickSearch *quicksearch); gboolean quicksearch_is_in_typing(QuickSearch *quicksearch); void quicksearch_relayout(QuickSearch *quicksearch); void quicksearch_set_search_strings(QuickSearch *quicksearch); +void quicksearch_folder_item_invalidate(QuickSearch *quicksearch, FolderItem *item); #endif /* QUICKSEARCH_H */ diff --git a/src/summaryview.c b/src/summaryview.c @@ -7984,9 +7984,11 @@ static gboolean summary_update_folder_hook(gpointer source, gpointer data) FolderUpdateData *hookdata; SummaryView *summaryview = (SummaryView *)data; hookdata = source; - if (hookdata->update_flags & FOLDER_REMOVE_FOLDERITEM) + if (hookdata->update_flags & FOLDER_REMOVE_FOLDERITEM) { summary_update_unread(summaryview, hookdata->item); - else + quicksearch_folder_item_invalidate(summaryview->quicksearch, + hookdata->item); + } else summary_update_unread(summaryview, NULL); return FALSE;