mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.0.1821: cursor in terminal window moves when pressing CTRL-W
Problem: Cursor in terminal window moves when pressing CTRL-W. (Dominique Pelle) Solution: Do not more the cursor or redraw when not in Terminal-Normal mode. (closes #2904)
This commit is contained in:
parent
cd8fb449d6
commit
2bc799579d
@ -1606,23 +1606,24 @@ move_terminal_to_buffer(term_T *term)
|
|||||||
vterm_state_get_default_colors(vterm_obtain_state(term->tl_vterm),
|
vterm_state_get_default_colors(vterm_obtain_state(term->tl_vterm),
|
||||||
&term->tl_default_color.fg, &term->tl_default_color.bg);
|
&term->tl_default_color.fg, &term->tl_default_color.bg);
|
||||||
|
|
||||||
FOR_ALL_WINDOWS(wp)
|
if (term->tl_normal_mode)
|
||||||
{
|
FOR_ALL_WINDOWS(wp)
|
||||||
if (wp->w_buffer == term->tl_buffer)
|
|
||||||
{
|
{
|
||||||
wp->w_cursor.lnum = term->tl_buffer->b_ml.ml_line_count;
|
if (wp->w_buffer == term->tl_buffer)
|
||||||
wp->w_cursor.col = 0;
|
|
||||||
wp->w_valid = 0;
|
|
||||||
if (wp->w_cursor.lnum >= wp->w_height)
|
|
||||||
{
|
{
|
||||||
linenr_T min_topline = wp->w_cursor.lnum - wp->w_height + 1;
|
wp->w_cursor.lnum = term->tl_buffer->b_ml.ml_line_count;
|
||||||
|
wp->w_cursor.col = 0;
|
||||||
|
wp->w_valid = 0;
|
||||||
|
if (wp->w_cursor.lnum >= wp->w_height)
|
||||||
|
{
|
||||||
|
linenr_T min_topline = wp->w_cursor.lnum - wp->w_height + 1;
|
||||||
|
|
||||||
if (wp->w_topline < min_topline)
|
if (wp->w_topline < min_topline)
|
||||||
wp->w_topline = min_topline;
|
wp->w_topline = min_topline;
|
||||||
|
}
|
||||||
|
redraw_win_later(wp, NOT_VALID);
|
||||||
}
|
}
|
||||||
redraw_win_later(wp, NOT_VALID);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(FEAT_TIMERS) || defined(PROTO)
|
#if defined(FEAT_TIMERS) || defined(PROTO)
|
||||||
@ -1688,11 +1689,11 @@ term_enter_normal_mode(void)
|
|||||||
{
|
{
|
||||||
term_T *term = curbuf->b_term;
|
term_T *term = curbuf->b_term;
|
||||||
|
|
||||||
|
set_terminal_mode(term, TRUE);
|
||||||
|
|
||||||
/* Append the current terminal contents to the buffer. */
|
/* Append the current terminal contents to the buffer. */
|
||||||
move_terminal_to_buffer(term);
|
move_terminal_to_buffer(term);
|
||||||
|
|
||||||
set_terminal_mode(term, TRUE);
|
|
||||||
|
|
||||||
/* Move the window cursor to the position of the cursor in the
|
/* Move the window cursor to the position of the cursor in the
|
||||||
* terminal. */
|
* terminal. */
|
||||||
curwin->w_cursor.lnum = term->tl_scrollback_scrolled
|
curwin->w_cursor.lnum = term->tl_scrollback_scrolled
|
||||||
|
@ -761,6 +761,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 */
|
||||||
|
/**/
|
||||||
|
1821,
|
||||||
/**/
|
/**/
|
||||||
1820,
|
1820,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user