diff options
Diffstat (limited to 'src/nvim/drawscreen.c')
-rw-r--r-- | src/nvim/drawscreen.c | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c index f65146fd16..06e4cd48e7 100644 --- a/src/nvim/drawscreen.c +++ b/src/nvim/drawscreen.c @@ -771,20 +771,20 @@ static void win_redr_border(win_T *wp) if (adj[1]) { grid_line_put_schar(icol + adj[3], chars[2], attrs[2]); } - grid_line_flush(false); + grid_line_flush(); } for (int i = 0; i < irow; i++) { if (adj[3]) { grid_line_start(grid, i + adj[0]); grid_line_put_schar(0, chars[7], attrs[7]); - grid_line_flush(false); + grid_line_flush(); } if (adj[1]) { int ic = (i == 0 && !adj[0] && chars[2]) ? 2 : 3; grid_line_start(grid, i + adj[0]); grid_line_put_schar(icol + adj[3], chars[ic], attrs[ic]); - grid_line_flush(false); + grid_line_flush(); } } @@ -807,7 +807,7 @@ static void win_redr_border(win_T *wp) if (adj[1]) { grid_line_put_schar(icol + adj[3], chars[4], attrs[4]); } - grid_line_flush(false); + grid_line_flush(); } } @@ -1098,7 +1098,7 @@ int showmode(void) && !(p_ch == 0 && !ui_has(kUIMessages))) { grid_line_start(&msg_grid_adj, Rows - 1); win_redr_ruler(ruler_win); - grid_line_flush(false); + grid_line_flush(); } redraw_cmdline = false; @@ -1370,25 +1370,25 @@ static void draw_sep_connectors_win(win_T *wp) bool bot_left = !(win_at_bottom || win_at_left); bool bot_right = !(win_at_bottom || win_at_right); - if (top_left || top_right) { + if (top_left) { grid_line_start(&default_grid, wp->w_winrow - 1); - if (top_left) { - grid_line_put_schar(wp->w_wincol - 1, get_corner_sep_connector(wp, WC_TOP_LEFT), hl); - } - if (top_right) { - grid_line_put_schar(W_ENDCOL(wp), get_corner_sep_connector(wp, WC_TOP_RIGHT), hl); - } - grid_line_flush(false); + grid_line_put_schar(wp->w_wincol - 1, get_corner_sep_connector(wp, WC_TOP_LEFT), hl); + grid_line_flush(); + } + if (top_right) { + grid_line_start(&default_grid, wp->w_winrow - 1); + grid_line_put_schar(W_ENDCOL(wp), get_corner_sep_connector(wp, WC_TOP_RIGHT), hl); + grid_line_flush(); } - if (bot_left || bot_right) { + if (bot_left) { grid_line_start(&default_grid, W_ENDROW(wp)); - if (bot_left) { - grid_line_put_schar(wp->w_wincol - 1, get_corner_sep_connector(wp, WC_BOTTOM_LEFT), hl); - } - if (bot_right) { - grid_line_put_schar(W_ENDCOL(wp), get_corner_sep_connector(wp, WC_BOTTOM_RIGHT), hl); - } - grid_line_flush(false); + grid_line_put_schar(wp->w_wincol - 1, get_corner_sep_connector(wp, WC_BOTTOM_LEFT), hl); + grid_line_flush(); + } + if (bot_right) { + grid_line_start(&default_grid, W_ENDROW(wp)); + grid_line_put_schar(W_ENDCOL(wp), get_corner_sep_connector(wp, WC_BOTTOM_RIGHT), hl); + grid_line_flush(); } } @@ -2394,8 +2394,11 @@ static void win_update(win_T *wp, DecorProviders *providers) int symbol = wp->w_p_fcs_chars.lastline; // Last line isn't finished: Display "@@@" at the end. - grid_fill(&wp->w_grid, wp->w_grid.rows - 1, wp->w_grid.rows, - MAX(start_col, 0), wp->w_grid.cols, symbol, symbol, at_attr); + // TODO(bfredl): this display ">@@@" when ">" was a left-halve + // maybe "@@@@" is preferred when this happens. + grid_line_start(&wp->w_grid, wp->w_grid.rows - 1); + grid_line_fill(MAX(start_col, 0), wp->w_grid.cols, symbol, at_attr); + grid_line_flush(); set_empty_rows(wp, srow); wp->w_botline = lnum; } else { |