From afd0c648a89ff88c9bff1b24c37e139813ec13c9 Mon Sep 17 00:00:00 2001 From: luukvbaal Date: Sat, 26 Aug 2023 15:10:04 +0200 Subject: [PATCH] fix(statuscolumn): force full redraw when signcolumn is invalid (#24859) Fix #24655 --- src/nvim/drawscreen.c | 2 ++ test/functional/ui/statuscolumn_spec.lua | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c index 30a5755297..bd177884fb 100644 --- a/src/nvim/drawscreen.c +++ b/src/nvim/drawscreen.c @@ -595,6 +595,8 @@ int update_screen(void) // Reset 'statuscolumn' if there is no dedicated signcolumn but it is invalid. if (*wp->w_p_stc != NUL && !wp->w_buffer->b_signcols.valid && win_no_signcol(wp)) { wp->w_nrwidth_line_count = 0; + wp->w_valid &= ~VALID_WCOL; + wp->w_redr_type = UPD_NOT_VALID; } } diff --git a/test/functional/ui/statuscolumn_spec.lua b/test/functional/ui/statuscolumn_spec.lua index 35cd479bb9..ee235cd6b5 100644 --- a/test/functional/ui/statuscolumn_spec.lua +++ b/test/functional/ui/statuscolumn_spec.lua @@ -727,6 +727,8 @@ describe('statuscolumn', function() end return vim.v.lnum .. '%=' .. sign end + vim.o.number = true + vim.o.numberwidth = 2 vim.o.statuscolumn = "%!v:lua.StatusCol()" ]]) command('sign place 1 line=2 name=sign')