diff options
author | Marco Peereboom <marco@conformal.com> | 2010-12-30 14:14:08 +0000 |
---|---|---|
committer | Marco Peereboom <marco@conformal.com> | 2010-12-30 14:14:08 +0000 |
commit | 565888bb1423575dbbc54e951df6601e49ec2f1c (patch) | |
tree | 419f6e2ed499cbfa66d4a284184e7db4b7e30ae4 | |
parent | 042a0353a8f9ffcc8f3e8efacf2d5c8ad3c8eac0 (diff) | |
download | xombrero-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.c | 6 |
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); |