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:
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;