summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Soriano <csoriano@gnome.org>2015-12-17 10:32:07 +0100
committerCarlos Soriano <csoriano@gnome.org>2015-12-17 10:35:25 +0100
commit64dbc8b5e1c6e66bc5feca7fa521406349fe0576 (patch)
treee1f87fe1b67678a05ad3f7dccf1b5fcd7c6f58cf
parent05c51265d2a60df323e3dd65c1108fc2eca81734 (diff)
downloadnautilus-wip/csoriano/search-improvements.tar.gz
files-view: sync the query when the location is a searchwip/csoriano/search-improvements
-rw-r--r--src/nautilus-files-view.c10
-rw-r--r--src/nautilus-window-slot.c3
2 files changed, 12 insertions, 1 deletions
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index 055800e02..769c115bf 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -3092,6 +3092,14 @@ nautilus_files_view_set_location (NautilusView *view,
nautilus_profile_start (NULL);
directory = nautilus_directory_get (location);
load_directory (NAUTILUS_FILES_VIEW (view), directory);
+ /* In case we want to load a previous search, sync the query */
+ if (NAUTILUS_IS_SEARCH_DIRECTORY (directory)) {
+ NautilusQuery *previous_query;
+
+ previous_query = nautilus_search_directory_get_query (NAUTILUS_SEARCH_DIRECTORY (directory));
+ nautilus_view_set_search_query (view, previous_query);
+ g_object_unref (previous_query);
+ }
nautilus_directory_unref (directory);
nautilus_profile_end (NULL);
}
@@ -7754,7 +7762,7 @@ nautilus_files_view_set_search_query (NautilusView *view,
* Reuse the search directory and reload it.
*/
nautilus_search_directory_set_query (NAUTILUS_SEARCH_DIRECTORY (files_view->details->model), query);
- nautilus_view_set_location (view, location);
+ load_directory (files_view, nautilus_directory_ref (files_view->details->model));
} else {
NautilusDirectory *directory;
NautilusFile *file;
diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c
index b10de0034..de92841ab 100644
--- a/src/nautilus-window-slot.c
+++ b/src/nautilus-window-slot.c
@@ -267,7 +267,10 @@ check_search_visible (NautilusWindowSlot *slot)
/* If we changed location just to another search location, for example,
* when changing the query, just keep the search visible */
if (nautilus_view_is_searching (view))
+ if (nautilus_view_is_searching (view)) {
+ nautilus_window_slot_set_search_visible (slot, TRUE);
return;
+ }
if (query) {
text = nautilus_query_get_text (query);