diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-01-24 21:37:38 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-02-02 16:31:49 +0100 |
commit | 69bdc4f0726ae0f3a2610dadbaf4156acfe74f49 (patch) | |
tree | e90eba8bcf0ed386a414e1644055e6e4651a3f5b /src/nvim/ui.c | |
parent | 2405cf82552e93eb3d5441d2f109647b97af5521 (diff) | |
download | rneovim-69bdc4f0726ae0f3a2610dadbaf4156acfe74f49.tar.gz rneovim-69bdc4f0726ae0f3a2610dadbaf4156acfe74f49.tar.bz2 rneovim-69bdc4f0726ae0f3a2610dadbaf4156acfe74f49.zip |
ui/compositor: add redraws needed due to intersected doublewidth chars.
Diffstat (limited to 'src/nvim/ui.c')
-rw-r--r-- | src/nvim/ui.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/nvim/ui.c b/src/nvim/ui.c index 3dc6ccaf52..dd4eb0f196 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -315,11 +315,17 @@ 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) { + LineFlags flags = wrap ? kLineFlagWrap : 0; + if (startcol == -1) { + startcol = 0; + flags |= kLineFlagInvalid; + } + size_t off = grid->line_offset[row] + (size_t)startcol; - ui_call_raw_line(grid->handle, row, startcol, endcol, - clearcol, clearattr, wrap, (const schar_T *)grid->chars + off, - (const sattr_T *)grid->attrs + off); + ui_call_raw_line(grid->handle, row, startcol, endcol, clearcol, clearattr, + flags, (const schar_T *)grid->chars + off, + (const sattr_T *)grid->attrs + off); if (p_wd) { // 'writedelay': flush & delay each time. int old_row = cursor_row, old_col = cursor_col; |