- else if(ev->type == GDK_KEY_PRESS && ev->keyval == GDK_Escape) {
- gtk_widget_hide(c->urlbar);
- gtk_widget_hide(c->searchbar);
- return TRUE;
+ else {
+ switch(ev->keyval) {
+ case GDK_Escape:
+ if(!GTK_WIDGET_HAS_FOCUS(c->searchbar) && !GTK_WIDGET_HAS_FOCUS(c->urlbar))
+ return FALSE;
+ gtk_widget_hide(c->urlbar);
+ gtk_widget_hide(c->searchbar);
+ gtk_widget_grab_focus(GTK_WIDGET(c->view));
+ return TRUE;
+ case GDK_Return:
+ if(GTK_WIDGET_HAS_FOCUS(c->urlbar)) {
+ loaduri(c, gtk_entry_get_text(GTK_ENTRY(c->urlbar)));
+ gtk_widget_hide(c->urlbar);
+ gtk_widget_grab_focus(GTK_WIDGET(c->view));
+ return TRUE;
+ }
+ else if(GTK_WIDGET_HAS_FOCUS(c->searchbar)) {
+ webkit_web_view_search_text(c->view,
+ gtk_entry_get_text(GTK_ENTRY(c->searchbar)),
+ FALSE,
+ !(ev->state & GDK_SHIFT_MASK),
+ TRUE);
+ }
+ }