about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMarco Peereboom <marco@conformal.com>2010-12-30 14:14:08 +0000
committerMarco Peereboom <marco@conformal.com>2010-12-30 14:14:08 +0000
commit565888bb1423575dbbc54e951df6601e49ec2f1c (patch)
tree419f6e2ed499cbfa66d4a284184e7db4b7e30ae4
parent042a0353a8f9ffcc8f3e8efacf2d5c8ad3c8eac0 (diff)
downloadxombrero-565888bb1423575dbbc54e951df6601e49ec2f1c.tar.gz
dont allow the tab widget to ever get focus so that we can capture more
keystrokes properly.  also fix a bug where search_entry didn't get assigned
the correct callback for key entry and therefore ate some keystrokes.

add ESC on uri and search entry to move focus back to browser, essentially
emulating the vi edit/command mode a bit better.  idea from edd.
-rw-r--r--xxxterm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/xxxterm.c b/xxxterm.c
index 23718d0..206abdd 100644
--- a/xxxterm.c
+++ b/xxxterm.c
@@ -4061,6 +4061,9 @@ entry_key_cb(GtkEntry *w, GdkEventKey *e, struct tab *t)
 	DNPRINTF(XT_D_CMD, "entry_key_cb: keyval 0x%x mask 0x%x t %p\n",
 	    e->keyval, e->state, t);
 
+	if (e->keyval == GDK_Escape)
+		gtk_widget_grab_focus(GTK_WIDGET(t->wv));
+
 	for (i = 0; i < LENGTH(keys); i++)
 		if (e->keyval == keys[i].key &&
 		    CLEAN(e->state) == keys[i].mask &&
@@ -4357,7 +4360,7 @@ create_toolbar(struct tab *t)
 		gtk_entry_set_width_chars(GTK_ENTRY(t->search_entry), 30);
 		g_signal_connect(G_OBJECT(t->search_entry), "activate",
 		    G_CALLBACK(activate_search_entry_cb), t);
-		g_signal_connect(G_OBJECT(t->uri_entry), "key-press-event",
+		g_signal_connect(G_OBJECT(t->search_entry), "key-press-event",
 		    (GCallback)entry_key_cb, t);
 		gtk_box_pack_start(GTK_BOX(b), t->search_entry, FALSE, FALSE, 0);
 	}
@@ -4600,6 +4603,7 @@ create_canvas(void)
 	if (showtabs == 0)
 		gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE);
 	gtk_notebook_set_scrollable(notebook, TRUE);
+	gtk_widget_set_can_focus(GTK_WIDGET(notebook), FALSE);
 
 	gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(notebook), TRUE, TRUE, 0);