commit fea845b67d7f2de7ea93f9205cc1edd33d2e3230 from: Omar Polo date: Mon Mar 15 21:27:59 2021 UTC add tab-close-other commit - 1b81bc33f2da0429e38dbf920d66a008a12f00e9 commit + fea845b67d7f2de7ea93f9205cc1edd33d2e3230 blob - b0558831f7a6761a7634ca4575a4584061380000 blob + 4f63a78d591b54db3000c9f7f50a4fdee6c164e2 --- ui.c +++ ui.c @@ -77,6 +77,7 @@ static void cmd_next_page(struct tab*); static void cmd_clear_minibuf(struct tab*); static void cmd_execute_extended_command(struct tab*); static void cmd_tab_close(struct tab*); +static void cmd_tab_close_other(struct tab*); static void cmd_tab_new(struct tab*); static void cmd_tab_next(struct tab*); static void cmd_tab_previous(struct tab*); @@ -258,6 +259,7 @@ load_default_keys(void) global_set_key("C-x M-f", cmd_load_current_url); global_set_key("C-x t 0", cmd_tab_close); + global_set_key("C-x t 1", cmd_tab_close_other); global_set_key("C-x t 2", cmd_tab_new); global_set_key("C-x t o", cmd_tab_next); global_set_key("C-x t O", cmd_tab_previous); @@ -604,6 +606,21 @@ cmd_tab_close(struct tab *tab) } static void +cmd_tab_close_other(struct tab *tab) +{ + struct tab *t, *i; + + TAILQ_FOREACH_SAFE(t, &tabshead, tabs, i) { + if (t->flags & TAB_CURRENT) + continue; + + stop_tab(t); + TAILQ_REMOVE(&tabshead, t, tabs); + free(t); + } +} + +static void cmd_tab_new(struct tab *tab) { new_tab(NEW_TAB_URL);