diff options
author | Josh Rickmar <jrick@devio.us> | 2012-07-27 10:19:33 -0400 |
---|---|---|
committer | Josh Rickmar <jrick@devio.us> | 2012-07-27 10:19:33 -0400 |
commit | 4d311b35bf6bca1b210ffe4a3f16842d444f432e (patch) | |
tree | 0ee8fa471e861bff7774a87051f5d025e4ac4385 /xombrero.c | |
parent | 0c240f728d489408cda135786cf29244c1cd4d83 (diff) | |
download | xombrero-4d311b35bf6bca1b210ffe4a3f16842d444f432e.tar.gz |
More focus improvements. Disable the can-focus property for a lot of
widgets that should not be receiving focus, and try focusing the HTML body to try to prevent some of the focus bugs that have been popping up. No idea if this will solve our problems but they can't hurt.
Diffstat (limited to 'xombrero.c')
-rw-r--r-- | xombrero.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/xombrero.c b/xombrero.c index b215e32..e6c50e0 100644 --- a/xombrero.c +++ b/xombrero.c @@ -475,6 +475,7 @@ hide_cmd(struct tab *t) history_at = NULL; /* just in case */ search_at = NULL; /* just in case */ + gtk_widget_set_can_focus(t->cmd, FALSE); gtk_widget_hide(t->cmd); } @@ -486,6 +487,7 @@ show_cmd(struct tab *t) history_at = NULL; search_at = NULL; gtk_widget_hide(t->oops); + gtk_widget_set_can_focus(t->cmd, TRUE); gtk_widget_show(t->cmd); } @@ -493,6 +495,7 @@ void hide_buffers(struct tab *t) { gtk_widget_hide(t->buffers); + gtk_widget_set_can_focus(t->buffers, FALSE); gtk_list_store_clear(buffers_store); } @@ -566,6 +569,7 @@ show_buffers(struct tab *t) gtk_tree_path_free(path); gtk_widget_show(t->buffers); + gtk_widget_set_can_focus(t->buffers, TRUE); gtk_widget_grab_focus(GTK_WIDGET(t->buffers)); } @@ -2798,7 +2802,7 @@ struct prompt_sub { int command(struct tab *t, struct karg *args) { - struct karg a; + struct karg a = {0}; int i; char *s = NULL, *sp = NULL, *sl = NULL; gchar **sv; @@ -2844,14 +2848,12 @@ command(struct tab *t, struct karg *args) break; case '.': t->mode = XT_MODE_HINT; - bzero(&a, sizeof a); a.i = 0; hint(t, &a); s = "."; break; case ',': t->mode = XT_MODE_HINT; - bzero(&a, sizeof a); a.i = XT_HINT_NEWTAB; hint(t, &a); s = ","; @@ -6886,6 +6888,7 @@ create_browser(struct tab *t) } w = gtk_scrolled_window_new(NULL, NULL); + gtk_widget_set_can_focus(w, FALSE); t->adjust_h = gtk_scrolled_window_get_hadjustment( GTK_SCROLLED_WINDOW(w)); t->adjust_v = gtk_scrolled_window_get_vadjustment( @@ -6999,16 +7002,13 @@ create_toolbar(struct tab *t) gtk_widget_set_sensitive(t->forward, FALSE); g_signal_connect(G_OBJECT(t->forward), "clicked", G_CALLBACK(forward_cb), t); - gtk_box_pack_start(GTK_BOX(b), t->forward, FALSE, - FALSE, 0); + gtk_box_pack_start(GTK_BOX(b), t->forward, FALSE, FALSE, 0); /* stop button */ t->stop = create_button("Stop", GTK_STOCK_STOP, 0); gtk_widget_set_sensitive(t->stop, FALSE); - g_signal_connect(G_OBJECT(t->stop), "clicked", - G_CALLBACK(stop_cb), t); - gtk_box_pack_start(GTK_BOX(b), t->stop, FALSE, - FALSE, 0); + g_signal_connect(G_OBJECT(t->stop), "clicked", G_CALLBACK(stop_cb), t); + gtk_box_pack_start(GTK_BOX(b), t->stop, FALSE, FALSE, 0); /* JS button */ t->js_toggle = create_button("JS-Toggle", enable_scripts ? @@ -7529,9 +7529,11 @@ create_new_tab(char *title, struct undo *u, int focus, int position) t->vbox = gtk_vbox_new(FALSE, 0); b = gtk_hbox_new(FALSE, 0); #endif + gtk_widget_set_can_focus(t->vbox, FALSE); /* label + button for tab */ t->tab_content = b; + gtk_widget_set_can_focus(t->tab_content, FALSE); t->user_agent_id = 0; t->http_accept_id = 0; @@ -7945,6 +7947,7 @@ create_button(char *name, char *stockid, int size) g_free(newstyle); #endif button = gtk_button_new(); + gtk_widget_set_can_focus(button, FALSE); gtk_button_set_focus_on_click(GTK_BUTTON(button), FALSE); gtk_icon_size = icon_size_map(size ? size : icon_size); @@ -7984,7 +7987,9 @@ create_canvas(void) vbox = gtk_vbox_new(FALSE, 0); #endif gtk_box_set_spacing(GTK_BOX(vbox), 0); + gtk_widget_set_can_focus(vbox, FALSE); notebook = GTK_NOTEBOOK(gtk_notebook_new()); + gtk_widget_set_name(notebook, "notebook"); #if !GTK_CHECK_VERSION(3, 0, 0) /* XXX seems to be needed with gtk+2 */ g_object_set(G_OBJECT(notebook), "tab-border", 0, NULL); @@ -7994,6 +7999,7 @@ create_canvas(void) gtk_widget_set_can_focus(GTK_WIDGET(notebook), FALSE); abtn = gtk_button_new(); + gtk_widget_set_can_focus(abtn, FALSE); arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE); gtk_widget_set_name(abtn, "Arrow"); gtk_container_add(GTK_CONTAINER(abtn), arrow); |