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 <mattn.jp@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
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
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 259,
/**/
258,
/**/