summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2012-01-06 23:10:04 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2012-01-06 23:10:04 +0000
commitfc3de8814c8826f17857cd18aa8774cda1925bff (patch)
tree2781906b1494f65c9a3080a39ba9fef086fe1c12 /gtk
parent3b492b48428799b0eae21cbc8eee37bc834ebbb7 (diff)
downloadnetsurf-fc3de8814c8826f17857cd18aa8774cda1925bff.tar.gz
netsurf-fc3de8814c8826f17857cd18aa8774cda1925bff.tar.bz2
Search-as-you-type.
svn path=/trunk/netsurf/; revision=13385
Diffstat (limited to 'gtk')
-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;
}