summaryrefslogtreecommitdiff
path: root/gtk/search.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/search.c')
-rw-r--r--gtk/search.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/gtk/search.c b/gtk/search.c
index 66acf3be8..13740784a 100644
--- a/gtk/search.c
+++ b/gtk/search.c
@@ -134,11 +134,25 @@ gboolean nsgtk_search_entry_changed(GtkWidget *widget, gpointer data)
struct browser_window *bw = nsgtk_get_browser_window(
nsgtk_scaffolding_top_level(g));
- if (bw != NULL)
- browser_window_search_destroy_context(bw);
+ assert(bw != NULL);
+
+ browser_window_search_destroy_context(bw);
nsgtk_search_set_forward_state(true, (void *)bw);
nsgtk_search_set_back_state(true, (void *)bw);
+
+ search_flags_t flags = SEARCH_FLAG_FORWARDS |
+ (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(
+ nsgtk_scaffolding_search(g)->caseSens)) ?
+ SEARCH_FLAG_CASE_SENSITIVE : 0) |
+ (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(
+ nsgtk_scaffolding_search(g)->checkAll)) ?
+ SEARCH_FLAG_SHOWALL : 0);
+
+ if (browser_window_search_verify_new(bw, &nsgtk_search_callbacks,
+ (void *)bw))
+ browser_window_search_step(bw, flags, gtk_entry_get_text(
+ nsgtk_scaffolding_search(g)->entry));
return TRUE;
}