diff options
| author | bfredl <bjorn.linse@gmail.com> | 2024-01-04 14:07:25 +0100 |
|---|---|---|
| committer | bfredl <bjorn.linse@gmail.com> | 2024-01-11 19:53:21 +0100 |
| commit | 478b1af511b2ce9ecaeade910ce227b900b83429 (patch) | |
| tree | 334cc7e14a57d688ddc4038dda678c04b2eb57d2 /src/nvim/message.c | |
| parent | d54156ed08b84e6c7f22334a4f3a4d4f84798604 (diff) | |
| download | rneovim-478b1af511b2ce9ecaeade910ce227b900b83429.tar.gz rneovim-478b1af511b2ce9ecaeade910ce227b900b83429.tar.bz2 rneovim-478b1af511b2ce9ecaeade910ce227b900b83429.zip | |
refactor(screen): simplify grid_clear() and win_draw_end()
grid_put_linebuf() used grid_clear() internally to handle clearing the
left part of a rightleft line. By reimplementing that internally, we
can instead use grid_put_linebuf() as the implementation of
grid_clear(), which in the end is a net reduction of code as grid_fill()
is used for nothing else.
win_draw_end: Implement "draw_margin" on a per-row basis which closer reflects how
terminals work. Also use the magic mirror for 'rightleft'
Diffstat (limited to 'src/nvim/message.c')
| -rw-r--r-- | src/nvim/message.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c index 2b668db7cd..35cf7d71fb 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -204,6 +204,7 @@ void msg_grid_validate(void) } else if (msg_grid.chars && !msg_scrolled && msg_grid_pos != max_rows) { msg_grid_set_pos(max_rows, false); } + msg_grid_adj.cols = Columns; if (msg_grid.chars && !msg_scrolled && cmdline_row < msg_grid_pos) { // TODO(bfredl): this should already be the case, but fails in some @@ -2349,7 +2350,7 @@ void msg_scroll_flush(void) for (int i = MAX(Rows - MAX(delta, 1), 0); i < Rows; i++) { int row = i - msg_grid_pos; assert(row >= 0); - ui_line(&msg_grid, row, 0, msg_grid.dirty_col[row], msg_grid.cols, + ui_line(&msg_grid, row, false, 0, msg_grid.dirty_col[row], msg_grid.cols, HL_ATTR(HLF_MSG), false); msg_grid.dirty_col[row] = 0; } |