patch 9.1.1905: tabpanel: truncates terminal output

Problem:  tabpanel: truncates terminal output
          (hokorobi)
Solution: Use topframe->fr_width, not Columns (which includes the
          tabpanel width) (Hirohito Higashi)

related: #18678
closes: #18707

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-11-11 17:20:13 +00:00
committed by Christian Brabandt
parent b74ec159dd
commit 1ff3e701e4
2 changed files with 10 additions and 7 deletions

View File

@ -291,10 +291,11 @@ set_term_and_win_size(term_T *term, jobopt_T *opt)
#ifdef FEAT_GUI
if (term->tl_system)
{
// Use the whole screen for the system command. However, it will start
// at the command line and scroll up as needed, using tl_toprow.
// Use the entire screen (excluding the tabpanel area) for the system
// commands. However, it will start at the command line and scroll up
// as needed, using tl_toprow.
term->tl_rows = Rows;
term->tl_cols = Columns;
term->tl_cols = topframe->fr_width;
return;
}
#endif
@ -1340,7 +1341,7 @@ update_cursor(term_T *term, int redraw)
#ifdef FEAT_GUI
if (term->tl_system)
windgoto(term->tl_cursor_pos.row + term->tl_toprow,
term->tl_cursor_pos.col);
firstwin->w_wincol + term->tl_cursor_pos.col);
else
#endif
if (!term_job_running(term))
@ -3989,15 +3990,15 @@ update_system_term(term_T *term)
{
if (pos.row < term->tl_rows)
{
int max_col = MIN(Columns, term->tl_cols);
int max_col = MIN(topframe->fr_width, term->tl_cols);
term_line2screenline(term, NULL, screen, &pos, max_col);
}
else
pos.col = 0;
screen_line(curwin, term->tl_toprow + pos.row, 0, pos.col, Columns, -1,
0);
screen_line(curwin, term->tl_toprow + pos.row,
firstwin->w_wincol, pos.col, topframe->fr_width, -1, 0);
}
term->tl_dirty_row_start = MAX_ROW;

View File

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