mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.2.1598: starting a hidden terminal resizes the current window
Problem: Starting a hidden terminal resizes the current window. Solution: Do not resize the current window for a hidden terminal. (closes #6872)
This commit is contained in:
@@ -315,18 +315,22 @@ set_term_and_win_size(term_T *term, jobopt_T *opt)
|
|||||||
else if (cols != 0)
|
else if (cols != 0)
|
||||||
term->tl_cols = cols;
|
term->tl_cols = cols;
|
||||||
|
|
||||||
if (term->tl_rows != curwin->w_height)
|
if (!opt->jo_hidden)
|
||||||
win_setheight_win(term->tl_rows, curwin);
|
|
||||||
if (term->tl_cols != curwin->w_width)
|
|
||||||
win_setwidth_win(term->tl_cols, curwin);
|
|
||||||
|
|
||||||
// Set 'winsize' now to avoid a resize at the next redraw.
|
|
||||||
if (!minsize && *curwin->w_p_tws != NUL)
|
|
||||||
{
|
{
|
||||||
char_u buf[100];
|
if (term->tl_rows != curwin->w_height)
|
||||||
|
win_setheight_win(term->tl_rows, curwin);
|
||||||
|
if (term->tl_cols != curwin->w_width)
|
||||||
|
win_setwidth_win(term->tl_cols, curwin);
|
||||||
|
|
||||||
vim_snprintf((char *)buf, 100, "%dx%d", term->tl_rows, term->tl_cols);
|
// Set 'winsize' now to avoid a resize at the next redraw.
|
||||||
set_option_value((char_u *)"termwinsize", 0L, buf, OPT_LOCAL);
|
if (!minsize && *curwin->w_p_tws != NUL)
|
||||||
|
{
|
||||||
|
char_u buf[100];
|
||||||
|
|
||||||
|
vim_snprintf((char *)buf, 100, "%dx%d",
|
||||||
|
term->tl_rows, term->tl_cols);
|
||||||
|
set_option_value((char_u *)"termwinsize", 0L, buf, OPT_LOCAL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -130,6 +130,16 @@ func Test_terminal_termwinsize_overruled()
|
|||||||
set termwinsize=
|
set termwinsize=
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" hidden terminal must not change current window size
|
||||||
|
func Test_terminal_hidden_winsize()
|
||||||
|
let cmd = GetDummyCmd()
|
||||||
|
let rows = winheight(0)
|
||||||
|
let buf = term_start(cmd, #{hidden: 1, term_rows: 10})
|
||||||
|
call assert_equal(rows, winheight(0))
|
||||||
|
call assert_equal([10, &columns], term_getsize(buf))
|
||||||
|
exe "bwipe! " .. buf
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_terminal_termwinkey()
|
func Test_terminal_termwinkey()
|
||||||
" make three tabpages, terminal in the middle
|
" make three tabpages, terminal in the middle
|
||||||
0tabnew
|
0tabnew
|
||||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1598,
|
||||||
/**/
|
/**/
|
||||||
1597,
|
1597,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user