client_destroy(NULL, c);
return TRUE;
} else if (GDK_KEY_1 == key) {
- gtk_notebook_set_current_page(
- GTK_NOTEBOOK(mw.notebook), 0);
+ change_tab(0, c);
return TRUE;
} else if (GDK_KEY_2 == key) {
- gtk_notebook_set_current_page(
- GTK_NOTEBOOK(mw.notebook), 1);
+ change_tab(1, c);
return TRUE;
} else if (GDK_KEY_3 == key) {
- gtk_notebook_set_current_page(
- GTK_NOTEBOOK(mw.notebook), 2);
+ change_tab(2, c);
return TRUE;
} else if (GDK_KEY_4 == key) {
- gtk_notebook_set_current_page(
- GTK_NOTEBOOK(mw.notebook), 3);
+ change_tab(3, c);
return TRUE;
} else if (GDK_KEY_5 == key) {
- gtk_notebook_set_current_page(
- GTK_NOTEBOOK(mw.notebook), 4);
+ change_tab(4, c);
return TRUE;
} else if (GDK_KEY_6 == key) {
- gtk_notebook_set_current_page(
- GTK_NOTEBOOK(mw.notebook), 5);
+ change_tab(5, c);
return TRUE;
} else if (GDK_KEY_7 == key) {
+ change_tab(6, c);
gtk_notebook_set_current_page(
GTK_NOTEBOOK(mw.notebook), 6);
return TRUE;
} else if (GDK_KEY_8 == key) {
- gtk_notebook_set_current_page(
- GTK_NOTEBOOK(mw.notebook), 7);
+ change_tab(7, c);
return TRUE;
} else if (GDK_KEY_9 == key) {
- gtk_notebook_set_current_page(
- GTK_NOTEBOOK(mw.notebook), 8);
+ change_tab(8, c);
return TRUE;
} else if (GDK_KEY_u == key) {
gtk_notebook_prev_page(
return FALSE;
}
+void
+change_tab(int idx, struct Client *c)
+{
+ gtk_notebook_set_current_page(GTK_NOTEBOOK(mw.notebook), idx);
+ gtk_widget_grab_focus(GTK_WIDGET(c->web_view));
+}
+
void
reorder_current_tab(int target)
{
if (key_common(widget, event, data)) return TRUE;
if (event->type == GDK_KEY_PRESS) {
+ guint mask = gtk_accelerator_get_default_mod_mask();
+ gboolean shifted = ((((GdkEventKey *)event)->state & mask) ==
+ GDK_SHIFT_MASK);
int key = ((GdkEventKey *)event)->keyval;
if ((GDK_KEY_KP_Enter == key) || (GDK_KEY_Return == key)) {
const gchar *t =
if (!f) allocfail();
snprintf(f, len + 1, "%s%s", cfg_search_engine, t);
- webkit_web_view_load_uri(WEBKIT_WEB_VIEW(c->web_view),
- f);
+ if (shifted) {
+ client_new(f, NULL);
+ } else {
+ webkit_web_view_load_uri(
+ WEBKIT_WEB_VIEW(c->web_view), f);
+ gtk_widget_grab_focus(c->web_view);
+ }
g_free(f);
- gtk_widget_grab_focus(c->web_view);
return TRUE;
}
}
if (key_common(widget, event, data)) return TRUE;
if (event->type == GDK_KEY_PRESS) {
+ guint mask = gtk_accelerator_get_default_mod_mask();
+ gboolean shifted = ((((GdkEventKey *)event)->state & mask) ==
+ GDK_SHIFT_MASK);
int key = ((GdkEventKey *)event)->keyval;
+
if ((GDK_KEY_KP_Enter == key) || (GDK_KEY_Return == key)) {
gtk_widget_grab_focus(c->web_view);
t = gtk_entry_get_text(GTK_ENTRY(c->location));
- webkit_web_view_load_uri(WEBKIT_WEB_VIEW(c->web_view),
- ensure_uri_scheme(t));
+ if (shifted) {
+ switch_tab = TRUE;
+ client_new(t, NULL);
+ } else {
+ webkit_web_view_load_uri(
+ WEBKIT_WEB_VIEW(c->web_view),
+ ensure_uri_scheme(t));
+ }
return TRUE;
} else if (GDK_KEY_Escape == key) {
t = webkit_web_view_get_uri(