Commit: patch 9.2.0259: tabpanel: corrupted display during scrolling causing flicker

1 view
Skip to first unread message

Christian Brabandt

unread,
Mar 26, 2026, 5:17:12 PM (9 hours ago) Mar 26
to vim...@googlegroups.com
patch 9.2.0259: tabpanel: corrupted display during scrolling causing flicker

Commit: https://github.com/vim/vim/commit/f6e1dd11f45e555710cf202a06af15b8f823e609
Author: Yasuhiro Matsumoto <matt...@gmail.com>
Date: Thu Mar 26 21:03:46 2026 +0000

patch 9.2.0259: tabpanel: corrupted display during scrolling causing flicker

Problem: tabpanel: corrupted tabpanel during scrolling causing flicker
Solution: When the tabpanel is visible, force a line-by-line redraw in
win_do_lines() similarly to popup handling (Yasuhiro Matsumoto).

When a vertical tabpanel is visible, terminal scroll operations in
win_do_lines() affect the full screen width, corrupting the tabpanel
area. The tabpanel is then redrawn via redraw_tabpanel, causing visible
flicker. Return FAIL to force line-by-line redraw instead, analogous to
the existing popup_visible check.

closes: #19832

Signed-off-by: Yasuhiro Matsumoto <matt...@gmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/screen.c b/src/screen.c
index 78927c163..eeee319bf 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -3845,6 +3845,13 @@ win_do_lines(
if (!no_win_do_lines_ins)
clear_cmdline = TRUE;

+#if defined(FEAT_TABPANEL)
+ // Terminal scroll operations affect the full screen width, which would
+ // corrupt the vertical tabpanel area and cause flicker.
+ if (tabpanel_width() > 0)
+ return FAIL;
+#endif
+
/*
* If the terminal can set a scroll region, use that.
* Always do this in a vertically split window. This will redraw from
diff --git a/src/version.c b/src/version.c
index 8b35a8790..a0bd233d1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -734,6 +734,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 259,
/**/
258,
/**/
Reply all
Reply to author
Forward
0 new messages