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/ui.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/ui.c')
-rw-r--r-- | src/nvim/ui.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/nvim/ui.c b/src/nvim/ui.c index 9116bb22a2..5303a25acc 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -448,13 +448,12 @@ void ui_set_ext_option(UI *ui, UIExtension ext, bool active) } } -void ui_line(ScreenGrid *grid, int row, int startcol, int endcol, int clearcol, int clearattr, - bool wrap) +void ui_line(ScreenGrid *grid, int row, bool invalid_row, int startcol, int endcol, int clearcol, + int clearattr, bool wrap) { assert(0 <= row && row < grid->rows); LineFlags flags = wrap ? kLineFlagWrap : 0; - if (startcol == -1) { - startcol = 0; + if (startcol == 0 && invalid_row) { flags |= kLineFlagInvalid; } |