neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit e78e369a9d2db356cb6c3b3e4e50548fab1ee21d
parent efacb6e974fa6391bcc916749103f04fa9b9f6f7
Author: bfredl <bjorn.linse@gmail.com>
Date:   Mon, 29 Aug 2022 23:52:47 +0200

Merge pull request #19997 from bfredl/lastsep

fix(redraw): handle switching to a tabpage with larger p_ch value
Diffstat:
Msrc/nvim/window.c | 5+++++
Mtest/functional/legacy/cmdline_spec.lua | 4+---
2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/nvim/window.c b/src/nvim/window.c @@ -4343,6 +4343,11 @@ static void enter_tabpage(tabpage_T *tp, buf_T *old_curbuf, bool trigger_enter_a // Use the stored value of p_ch, so that it can be different for each tab page. if (p_ch != curtab->tp_ch_used) { clear_cmdline = true; + if (msg_grid.chars && p_ch < curtab->tp_ch_used) { + // TODO(bfredl): a bit expensive, should be enough to invalidate the + // region between the old and the new p_ch. + grid_invalidate(&msg_grid); + } } p_ch = curtab->tp_ch_used; diff --git a/test/functional/legacy/cmdline_spec.lua b/test/functional/legacy/cmdline_spec.lua @@ -19,8 +19,6 @@ describe('cmdline', function() [3] = {reverse = true}; [4] = {bold = true, foreground = Screen.colors.Blue1}; } - -- TODO(bfredl): redraw with tabs is severly broken. fix it - feed_command [[ set display-=msgsep ]] feed_command([[call setline(1, range(30))]]) screen:expect([[ @@ -61,7 +59,7 @@ describe('cmdline', function() {4:~ }| | | - :tabnew | + | ]]} feed [[gt]]