aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ui.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-01-24 21:37:38 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2019-02-02 16:31:49 +0100
commit69bdc4f0726ae0f3a2610dadbaf4156acfe74f49 (patch)
treee90eba8bcf0ed386a414e1644055e6e4651a3f5b /src/nvim/ui.c
parent2405cf82552e93eb3d5441d2f109647b97af5521 (diff)
downloadrneovim-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.c12
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;