diff options
-rw-r--r-- | src/nvim/statusline.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c index 4d318f8c59..0d309f7c16 100644 --- a/src/nvim/statusline.c +++ b/src/nvim/statusline.c @@ -741,6 +741,7 @@ void draw_tabline(void) int c; int len; char *p; + grid_line_start(&default_grid, 0); FOR_ALL_TABS(tp) { tabcount++; } @@ -775,14 +776,14 @@ void draw_tabline(void) attr = win_hl_attr(cwp, HLF_TPS); } if (use_sep_chars && col > 0) { - grid_putchar(&default_grid, '|', 0, col++, attr); + grid_line_put_schar(col++, schar_from_ascii('|'), attr); } if (tp->tp_topframe != topframe) { attr = win_hl_attr(cwp, HLF_TP); } - grid_putchar(&default_grid, ' ', 0, col++, attr); + grid_line_put_schar(col++, schar_from_ascii(' '), attr); int modified = false; @@ -799,14 +800,14 @@ void draw_tabline(void) if (col + len >= Columns - 3) { break; } - grid_puts(&default_grid, NameBuff, len, 0, col, - hl_combine_attr(attr, win_hl_attr(cwp, HLF_T))); + grid_line_puts(col, NameBuff, len, + hl_combine_attr(attr, win_hl_attr(cwp, HLF_T))); col += len; } if (modified) { - grid_puts(&default_grid, "+", 1, 0, col++, attr); + grid_line_put_schar(col++, schar_from_ascii('+'), attr); } - grid_putchar(&default_grid, ' ', 0, col++, attr); + grid_line_put_schar(col++, schar_from_ascii(' '), attr); } int room = scol - col + tabwidth - 1; @@ -824,10 +825,10 @@ void draw_tabline(void) len = Columns - col - 1; } - grid_puts(&default_grid, p, (int)strlen(p), 0, col, attr); + grid_line_puts(col, p, -1, attr); col += len; } - grid_putchar(&default_grid, ' ', 0, col++, attr); + grid_line_put_schar(col++, schar_from_ascii(' '), attr); // Store the tab page number in tab_page_click_defs[], so that // jump_to_mouse() knows where each one is. @@ -846,27 +847,29 @@ void draw_tabline(void) } else { c = ' '; } - grid_fill(&default_grid, 0, 1, col, Columns, c, c, attr_fill); + grid_line_fill(col, Columns, c, attr_fill); // Draw the 'showcmd' information if 'showcmdloc' == "tabline". if (p_sc && *p_sloc == 't') { const int sc_width = MIN(10, (int)Columns - col - (tabcount > 1) * 3); if (sc_width > 0) { - grid_puts(&default_grid, showcmd_buf, sc_width, 0, - Columns - sc_width - (tabcount > 1) * 2, attr_nosel); + grid_line_puts(Columns - sc_width - (tabcount > 1) * 2, + showcmd_buf, sc_width, attr_nosel); } } // Put an "X" for closing the current tab if there are several. if (tabcount > 1) { - grid_putchar(&default_grid, 'X', 0, Columns - 1, attr_nosel); + grid_line_put_schar(Columns - 1, schar_from_ascii('X'), attr_nosel); tab_page_click_defs[Columns - 1] = (StlClickDefinition) { .type = kStlClickTabClose, .tabnr = 999, .func = NULL, }; } + + grid_line_flush(false); } // Reset the flag here again, in case evaluating 'tabline' causes it to be |