add cycling through tabs
This commit is contained in:
parent
da8a0d7624
commit
c33fc76b02
10
config.h
10
config.h
|
@ -37,6 +37,7 @@ typedef enum {
|
||||||
zoomin,
|
zoomin,
|
||||||
zoomout,
|
zoomout,
|
||||||
zoom_reset,
|
zoom_reset,
|
||||||
|
new_tab,
|
||||||
next_tab,
|
next_tab,
|
||||||
prev_tab,
|
prev_tab,
|
||||||
close_tab,
|
close_tab,
|
||||||
|
@ -44,7 +45,6 @@ typedef enum {
|
||||||
show_finder,
|
show_finder,
|
||||||
finder_next,
|
finder_next,
|
||||||
finder_prev,
|
finder_prev,
|
||||||
new_tab,
|
|
||||||
prettify,
|
prettify,
|
||||||
hide_bar
|
hide_bar
|
||||||
} func;
|
} func;
|
||||||
|
@ -66,13 +66,13 @@ static struct {
|
||||||
{ CTRL, KEY(equal), zoomin },
|
{ CTRL, KEY(equal), zoomin },
|
||||||
{ CTRL, KEY(minus), zoomout },
|
{ CTRL, KEY(minus), zoomout },
|
||||||
{ CTRL, KEY(0), zoom_reset },
|
{ CTRL, KEY(0), zoom_reset },
|
||||||
{ CTRL, KEY(Page_Up), prev_tab },
|
{ CTRL, KEY(Page_Up), prev_tab },
|
||||||
{ CTRL, KEY(Page_Down), next_tab },
|
{ CTRL, KEY(Page_Down), next_tab },
|
||||||
{ CTRL, KEY(t), next_tab },
|
{ CTRL, KEY(t), new_tab },
|
||||||
{ CTRL, KEY(w), close_tab },
|
{ CTRL, KEY(w), close_tab },
|
||||||
{ 0x0, KEY(F11), toggle_fullscreen },
|
{ 0x0, KEY(F11), toggle_fullscreen },
|
||||||
{ CTRL, KEY(l), show_searchbar },
|
{ CTRL, KEY(l), show_searchbar },
|
||||||
{ CTRL, KEY(semicolon), hide_bar },
|
{ CTRL, KEY(semicolon), hide_bar },
|
||||||
{ CTRL, KEY(f), show_finder },
|
{ CTRL, KEY(f), show_finder },
|
||||||
{ CTRL, KEY(n), finder_next },
|
{ CTRL, KEY(n), finder_next },
|
||||||
{ CTRL | SFT, KEY(N), finder_prev },
|
{ CTRL | SFT, KEY(N), finder_prev },
|
||||||
|
|
27
rose.c
27
rose.c
|
@ -316,24 +316,19 @@ int handle_key(func id, GtkNotebook* notebook)
|
||||||
(zoom = ZOOM));
|
(zoom = ZOOM));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case prev_tab:
|
case prev_tab:; // declarations aren't statements
|
||||||
if (gtk_notebook_get_current_page(notebook) == 0) {
|
// <https://stackoverflow.com/questions/92396/why-cant-variables-be-declared-in-a-switch-statement>
|
||||||
gtk_notebook_set_current_page(notebook,
|
int n = gtk_notebook_get_n_pages(notebook);
|
||||||
gtk_notebook_get_n_pages(notebook) - 1);
|
int k = gtk_notebook_get_current_page(notebook);
|
||||||
} else {
|
int l = (n + k - 1) % n;
|
||||||
gtk_notebook_prev_page(notebook);
|
gtk_notebook_set_current_page(notebook, l);
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case next_tab:
|
case next_tab:;
|
||||||
if (gtk_notebook_get_current_page(notebook) == gtk_notebook_get_n_pages(notebook) - 1) {
|
int m = gtk_notebook_get_n_pages(notebook);
|
||||||
notebook_append(notebook, NULL);
|
int i = gtk_notebook_get_current_page(notebook);
|
||||||
gtk_notebook_set_show_tabs(notebook, true);
|
int j = (i + 1) % m;
|
||||||
webkit_web_view_set_zoom_level(notebook_get_webview(notebook), zoom);
|
gtk_notebook_set_current_page(notebook, j);
|
||||||
} else {
|
|
||||||
gtk_notebook_next_page(notebook);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case close_tab:
|
case close_tab:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user