diff options
Diffstat (limited to 'gtk/search.c')
-rw-r--r-- | gtk/search.c | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/gtk/search.c b/gtk/search.c index 44f9ddeb6..2bb8a85bd 100644 --- a/gtk/search.c +++ b/gtk/search.c @@ -192,13 +192,29 @@ gboolean nsgtk_search_entry_key(GtkWidget *widget, GdkEventKey *event, gboolean nsgtk_websearch_activate(GtkWidget *widget, gpointer data) { - struct gtk_scaffolding *g = (struct gtk_scaffolding *)data; - temp_open_background = 0; - search_web_new_window(nsgtk_get_browser_window( - nsgtk_scaffolding_top_level(g)), - (char *)gtk_entry_get_text(GTK_ENTRY( - nsgtk_scaffolding_websearch(g)))); - temp_open_background = -1; + struct gtk_scaffolding *g = data; + nserror ret; + nsurl *url; + + ret = search_web_omni( + gtk_entry_get_text(GTK_ENTRY(nsgtk_scaffolding_websearch(g))), + SEARCH_WEB_OMNI_SEARCHONLY, + &url); + if (ret == NSERROR_OK) { + temp_open_background = 0; + ret = browser_window_create( + BW_CREATE_HISTORY | BW_CREATE_TAB, + url, + NULL, + nsgtk_get_browser_window(nsgtk_scaffolding_top_level(g)), + NULL); + temp_open_background = -1; + nsurl_unref(url); + } + if (ret != NSERROR_OK) { + warn_user(messages_get_errorcode(ret), 0); + } + return TRUE; } |