commit - 3cea4ff5b5f444730267c4774f4217b6079fc71a
commit + 56168aa87af6918bce552d405f8e757349360b03
blob - e7099ca9b0e80d74258336f5a07f922b7d38784e
blob + 167ff546b01b58fee00760256ac5e7efd01a80b0
--- defaults.c
+++ defaults.c
int hide_pre_context = 0;
int olivetti_mode = 1;
int set_title = 1;
+int tab_bar_show = 1;
struct lineprefix line_prefixes[] = {
[LINE_TEXT] = { "", "" },
set_title = !!val;
} else if (!strcmp(var, "autosave")) {
autosave = val;
+ } else if (!strcmp(var, "tab-bar-show")) {
+ if (val < 0)
+ tab_bar_show = -1;
+ else if (val == 0)
+ tab_bar_show = 0;
+ else
+ tab_bar_show = 1;
} else {
return 0;
}
blob - 3bb7bee9fa10b99fdc77684477d6c89353acc874
blob + aae4fb1d66e38db84b8a314c42c74059183477e8
--- defaults.h
+++ defaults.h
extern int hide_pre_context;
extern int olivetti_mode;
extern int set_title;
+extern int tab_bar_show;
struct lineprefix {
const char *prfx1;
blob - 8a486a31ba1650d21b2ddd0e4213451a1905ad34
blob + 8532e8276791abb4bb8afa03438ae40d3b4b107d
--- ui.c
+++ ui.c
static void stop_loading_anim(struct tab*);
static int should_rearrange_windows;
+static int show_tab_bar;
static int too_small;
static int x_offset;
rearrange_windows();
}
+static inline int
+should_show_tab_bar(void)
+{
+ if (tab_bar_show == -1)
+ return 0;
+ if (tab_bar_show == 0)
+ return 1;
+
+ return TAILQ_NEXT(TAILQ_FIRST(&tabshead), tabs) != NULL;
+}
+
static void
rearrange_windows(void)
{
int lines;
should_rearrange_windows = 0;
+ show_tab_bar = should_show_tab_bar();
lines = LINES;
mvwin(modeline, --lines, 0);
wresize(modeline, 1, COLS);
- body_lines = --lines;
+ body_lines = show_tab_bar ? --lines : lines;
body_cols = COLS;
+ /*
+ * Here we make the assumption that show_tab_bar is either 0
+ * or 1, and reuse that as argument to mvwin.
+ */
if (side_window) {
help_cols = 0.3 * COLS;
help_lines = lines;
- mvwin(help, 1, 0);
+ mvwin(help, show_tab_bar, 0);
wresize(help, help_lines, help_cols);
wrap_page(&helpwin, help_cols);
body_cols = COLS - help_cols - 1;
- mvwin(body, 1, help_cols);
+ mvwin(body, show_tab_bar, help_cols);
} else
- mvwin(body, 1, 0);
+ mvwin(body, show_tab_bar, 0);
update_x_offset();
wresize(body, body_lines, body_cols);
- wresize(tabline, 1, COLS);
+ if (show_tab_bar)
+ wresize(tabline, 1, COLS);
wrap_page(¤t_tab->buffer, body_cols);
redraw_tab(current_tab);
wnoutrefresh(help);
}
- redraw_tabline();
+ if (show_tab_bar)
+ redraw_tabline();
+
redraw_body(tab);
redraw_modeline(tab);
redraw_minibuffer();
stop_loading_anim(tab);
message("Loaded %s", tab->hist_cur->h);
- redraw_tabline();
+ if (show_tab_bar)
+ redraw_tabline();
+
wrefresh(tabline);
place_cursor(0);
}