Skip to content

Commit f6e1dd1

Browse files
mattnchrisbra
authored andcommitted
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 <[email protected]> Signed-off-by: Christian Brabandt <[email protected]>
1 parent b901456 commit f6e1dd1

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

src/screen.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3845,6 +3845,13 @@ win_do_lines(
38453845
if (!no_win_do_lines_ins)
38463846
clear_cmdline = TRUE;
38473847

3848+
#if defined(FEAT_TABPANEL)
3849+
// Terminal scroll operations affect the full screen width, which would
3850+
// corrupt the vertical tabpanel area and cause flicker.
3851+
if (tabpanel_width() > 0)
3852+
return FAIL;
3853+
#endif
3854+
38483855
/*
38493856
* If the terminal can set a scroll region, use that.
38503857
* Always do this in a vertically split window. This will redraw from

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,8 @@ static char *(features[]) =
734734

735735
static int included_patches[] =
736736
{ /* Add new patch number below this line */
737+
/**/
738+
259,
737739
/**/
738740
258,
739741
/**/

0 commit comments

Comments
 (0)