aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/drawline.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/drawline.c')
-rw-r--r--src/nvim/drawline.c7
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);