patch 9.1.1430: tabpanel may flicker in the GUI

Problem:  tabpanel may flicker in the GUI
Solution: call scroll_start() and scroll_region_reset()
          (Hirohito Higashi)

fixes: #17440
closes: #17442

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Hirohito Higashi
2025-06-04 20:05:59 +02:00
committed by Christian Brabandt
parent c2c9132420
commit 862cb37544
3 changed files with 13 additions and 2 deletions

View File

@ -4478,7 +4478,9 @@ scroll_region_reset(void)
{
OUT_STR(tgoto((char *)T_CS, (int)Rows - 1, 0));
if (*T_CSV != NUL)
OUT_STR(tgoto((char *)T_CSV, Columns - 1, 0));
OUT_STR(tgoto((char *)T_CSV,
firstwin->w_wincol + topframe->fr_width - 1,
firstwin->w_wincol));
screen_start(); // don't know where cursor is now
}

View File

@ -709,6 +709,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1430,
/**/
1429,
/**/

View File

@ -6226,7 +6226,14 @@ shell_new_columns(void)
if (!skip_win_fix_scroll)
win_fix_scroll(TRUE);
#ifdef FEAT_GUI
if (gui.in_use)
{
if (scroll_region)
scroll_region_reset();
scroll_start(); // may scroll the screen to the right position
}
#endif
redraw_tabline = TRUE;
#if defined(FEAT_TABPANEL)
redraw_tabpanel = TRUE;