aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluukvbaal <luukvbaal@gmail.com>2023-08-26 15:10:04 +0200
committerGitHub <noreply@github.com>2023-08-26 21:10:04 +0800
commitafd0c648a89ff88c9bff1b24c37e139813ec13c9 (patch)
treef5eb311f76d6198897a439345abe07a9a3a6b166
parent965ed579fe3ab9ded0e5ab20b54a5a8607188dac (diff)
downloadrneovim-afd0c648a89ff88c9bff1b24c37e139813ec13c9.tar.gz
rneovim-afd0c648a89ff88c9bff1b24c37e139813ec13c9.tar.bz2
rneovim-afd0c648a89ff88c9bff1b24c37e139813ec13c9.zip
fix(statuscolumn): force full redraw when signcolumn is invalid (#24859)
Fix #24655
-rw-r--r--src/nvim/drawscreen.c2
-rw-r--r--test/functional/ui/statuscolumn_spec.lua2
2 files changed, 4 insertions, 0 deletions
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')