summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hofmann <scm@uninformativ.de>2014-06-15 11:44:48 +0200
committerPeter Hofmann <scm@uninformativ.de>2014-06-15 11:55:52 +0200
commitc558a8f810117013a220d49e57acab6c6d417780 (patch)
tree41e6a581287efdbb6394a63aa032aefd1a28ed43
parent13d1b01164a3a6bc3ad3629985edc47e335a9d35 (diff)
downloadlariza-c558a8f810117013a220d49e57acab6c6d417780.tar.gz
Re-show URI in location bar on Escape
-rw-r--r--browser.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/browser.c b/browser.c
index cd60440..094fe65 100644
--- a/browser.c
+++ b/browser.c
@@ -443,20 +443,26 @@ key_location(GtkWidget *widget, GdkEvent *event, gpointer data)
if (event->type == GDK_KEY_PRESS)
{
- if (((GdkEventKey *)event)->keyval == GDK_KEY_Return)
+ switch (((GdkEventKey *)event)->keyval)
{
- gtk_widget_grab_focus(c->web_view);
- t = gtk_entry_get_text(GTK_ENTRY(c->location));
- if (t != NULL && t[0] == '/')
- {
- if (search_text != NULL)
- g_free(search_text);
- search_text = g_strdup(t + 1); /* XXX whacky */
- search(c, 1);
- }
- else
- webkit_web_view_load_uri(WEBKIT_WEB_VIEW(c->web_view), t);
- return TRUE;
+ case GDK_KEY_Return:
+ gtk_widget_grab_focus(c->web_view);
+ t = gtk_entry_get_text(GTK_ENTRY(c->location));
+ if (t != NULL && t[0] == '/')
+ {
+ if (search_text != NULL)
+ g_free(search_text);
+ search_text = g_strdup(t + 1); /* XXX whacky */
+ search(c, 1);
+ }
+ else
+ webkit_web_view_load_uri(WEBKIT_WEB_VIEW(c->web_view), t);
+ return TRUE;
+ case GDK_KEY_Escape:
+ t = webkit_web_view_get_uri(WEBKIT_WEB_VIEW(c->web_view));
+ gtk_entry_set_text(GTK_ENTRY(c->location),
+ (t == NULL ? __NAME__ : t));
+ return TRUE;
}
}