diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-08-24 11:28:10 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-24 11:28:10 +0800 |
commit | a9418ef8cfc00943fcd6f8f2236783442e09e91b (patch) | |
tree | 8ea75c62a7380503e6d0f71c561798d8d6825c3d /src | |
parent | e2c10dea19a329f7913eb1d6110f10ec4bc525f9 (diff) | |
download | rneovim-a9418ef8cfc00943fcd6f8f2236783442e09e91b.tar.gz rneovim-a9418ef8cfc00943fcd6f8f2236783442e09e91b.tar.bz2 rneovim-a9418ef8cfc00943fcd6f8f2236783442e09e91b.zip |
fix(ui): wrong display with 0-width inline virt_text at eol (#24854)
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/drawline.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c index fa2aecff86..3638ea19f4 100644 --- a/src/nvim/drawline.c +++ b/src/nvim/drawline.c @@ -877,7 +877,8 @@ static bool has_more_inline_virt(winlinevars_T *wlv, ptrdiff_t v) DecorRange *item = &kv_A(state->active, i); if (item->start_row != state->row || !kv_size(item->decor.virt_text) - || item->decor.virt_text_pos != kVTInline) { + || item->decor.virt_text_pos != kVTInline + || item->decor.virt_text_width == 0) { continue; } if (item->draw_col >= -1 && item->start_col >= v) { @@ -899,7 +900,8 @@ static void handle_inline_virtual_text(win_T *wp, winlinevars_T *wlv, ptrdiff_t DecorRange *item = &kv_A(state->active, i); if (item->start_row != state->row || !kv_size(item->decor.virt_text) - || item->decor.virt_text_pos != kVTInline) { + || item->decor.virt_text_pos != kVTInline + || item->decor.virt_text_width == 0) { continue; } if (item->draw_col >= -1 && item->start_col == v) { @@ -935,6 +937,7 @@ static void handle_inline_virtual_text(win_T *wp, winlinevars_T *wlv, ptrdiff_t // If the text didn't reach until the first window // column we need to skip cells. if (wlv->skip_cells > 0) { + // FIXME: this should use virt_text_width instead int virt_text_len = wlv->n_attr; if (virt_text_len > wlv->skip_cells) { int len = mb_charlen2bytelen(wlv->p_extra, wlv->skip_cells); |