aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/ChangeLog7
-rw-r--r--mail/em-folder-browser.c25
2 files changed, 25 insertions, 7 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 16e235bfd1..189d06e43a 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,10 @@
+2004-01-30 Jeffrey Stedfast <fejj@ximian.com>
+
+ Fix for bug #53195.
+
+ * em-folder-browser.c (emfb_set_folder): Restore search_state.
+ (emfb_search_search_activated): Save search_state.
+
2004-01-30 Not Zed <NotZed@Ximian.com>
** See bug #53549, partial fix.
diff --git a/mail/em-folder-browser.c b/mail/em-folder-browser.c
index b30633481d..23ac1dd6d0 100644
--- a/mail/em-folder-browser.c
+++ b/mail/em-folder-browser.c
@@ -361,7 +361,7 @@ emfb_search_config_search(EFilterBar *efb, FilterRule *rule, int id, const char
struct _camel_search_words *words;
int i;
GSList *strings = NULL;
-
+
/* we scan the parts of a rule, and set all the types we know about to the query string */
partl = rule->parts;
while (partl) {
@@ -408,14 +408,20 @@ emfb_search_config_search(EFilterBar *efb, FilterRule *rule, int id, const char
static void
emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb)
{
- char *search_word;
+ EMFolderView *emfv = (EMFolderView *) emfb;
+ char *search_word, *search_state;
- if (emfb->view.list == NULL)
+ if (emfv->list == NULL)
return;
g_object_get (esb, "query", &search_word, NULL);
message_list_set_search(emfb->view.list, search_word);
- g_free(search_word);
+ g_free (search_word);
+
+ g_object_get (esb, "state", &search_state, NULL);
+ camel_object_meta_set (emfv->folder, "evolution:search_state", search_state);
+ camel_object_state_write (emfv->folder);
+ g_free (search_state);
}
static void
@@ -901,7 +907,7 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
char *sstate;
if ((sstate = camel_object_meta_get (folder, "evolution:show_preview"))) {
- em_folder_browser_show_preview ((EMFolderBrowser *) emfv, sstate[0] != '0');
+ em_folder_browser_show_preview (emfb, sstate[0] != '0');
g_free (sstate);
}
@@ -910,6 +916,11 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
g_free (sstate);
}
+ if ((sstate = camel_object_meta_get (folder, "evolution:search_state"))) {
+ g_object_set (emfb->search, "state", sstate, NULL);
+ g_free (sstate);
+ }
+
if ((sstate = camel_object_meta_get (folder, "evolution:selected_uid")))
emfb->priv->select_uid = sstate;
@@ -917,9 +928,9 @@ emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const char *uri)
emfb->priv->list_built_id =
g_signal_connect (emfv->list, "message_list_built", G_CALLBACK (emfb_list_built), emfv);
- /*emfb_create_view_instance ((EMFolderBrowser *) emfv, folder, uri);*/
+ /*emfb_create_view_instance (emfb, folder, uri);*/
if (emfv->uic)
- emfb_create_view_menus((EMFolderBrowser *)emfv, emfv->uic);
+ emfb_create_view_menus (emfb, emfv->uic);
}
}