patch 9.2.0161: intro message disappears on startup in some terminals

Problem:  intro message disappears on startup in some terminals
          (chdiza, after v9.2.0139)
Solution: Only call set_shellsize() in handle_csi() if the reported
          width or height actually differs from the current
          Rows or Columns. (Foxe Chen)

fixes:  #19656
closes: #19660

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Foxe Chen
2026-03-13 22:14:36 +00:00
committed by Christian Brabandt
parent 13b25e2f34
commit ef3d79ebbe
3 changed files with 16 additions and 1 deletions
+4 -1
View File
@@ -5791,7 +5791,10 @@ handle_csi(
key_name[0] = (int)KS_EXTRA;
key_name[1] = (int)KE_IGNORE;
set_shellsize(width, height, true);
// Only update if needed. Avoids intro message from disappearing on
// startup (due to initial event).
if (height != Rows || width != Columns)
set_shellsize(width, height, true);
}
#endif
+10
View File
@@ -2991,6 +2991,16 @@ func Test_term_win_resize()
call WaitForAssert({-> assert_equal(["50 100"], readfile("XTestWinResizeResult"))})
" Test that screen is only resized if it actually changed in width or height.
call term_sendkeys(buf, "\<Esc>:intro\<CR>")
call TermWait(buf)
call term_sendkeys(buf, "\<Esc>[48;50;100;0;0t")
call TermWait(buf)
" call delete("tmp.dump")
" call term_dumpwrite(buf, "tmp.dump")
" SIGWINCH handler should be uninstalled
call job_stop(term_getjob(buf), 28)
call TermWait(buf)
+2
View File
@@ -734,6 +734,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
161,
/**/
160,
/**/