void caja_navigation_window_show_search (CajaNavigationWindow *window) { CajaNavigationWindowPane *pane; pane = CAJA_NAVIGATION_WINDOW_PANE (CAJA_WINDOW (window)->details->active_pane); if (!caja_navigation_window_pane_search_bar_showing (pane)) { remember_focus_widget (window); caja_navigation_window_pane_show_location_bar_temporarily (pane); caja_navigation_window_pane_set_bar_mode (pane, CAJA_BAR_SEARCH); pane->temporary_search_bar = TRUE; caja_search_bar_clear (CAJA_SEARCH_BAR (pane->search_bar)); } caja_search_bar_grab_focus (CAJA_SEARCH_BAR (pane->search_bar)); }
static void search_bar_activate_callback (CajaSearchBar *bar, CajaNavigationWindowPane *pane) { char *uri, *current_uri; CajaDirectory *directory; CajaSearchDirectory *search_directory; CajaQuery *query; GFile *location; uri = caja_search_directory_generate_new_uri (); location = g_file_new_for_uri (uri); g_free (uri); directory = caja_directory_get (location); g_assert (CAJA_IS_SEARCH_DIRECTORY (directory)); search_directory = CAJA_SEARCH_DIRECTORY (directory); query = caja_search_bar_get_query (CAJA_SEARCH_BAR (pane->search_bar)); if (query != NULL) { CajaWindowSlot *slot = CAJA_WINDOW_PANE (pane)->active_slot; if (!caja_search_directory_is_indexed (search_directory)) { current_uri = caja_window_slot_get_location_uri (slot); caja_query_set_location (query, current_uri); g_free (current_uri); } caja_search_directory_set_query (search_directory, query); g_object_unref (query); } caja_window_slot_go_to (CAJA_WINDOW_PANE (pane)->active_slot, location, FALSE); caja_directory_unref (directory); g_object_unref (location); }