mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.0.1838: cursor in wrong pos when switching to Terminal-Normal mode
Problem: Cursor in wrong position when switching to Terminal-Normal mode. (Dominique Pelle) Solution: Move to the end of the line if coladvance() fails. Do not take a snapshot a second time.
This commit is contained in:
@@ -1709,7 +1709,8 @@ term_enter_normal_mode(void)
|
|||||||
curwin->w_cursor.lnum = term->tl_scrollback_scrolled
|
curwin->w_cursor.lnum = term->tl_scrollback_scrolled
|
||||||
+ term->tl_cursor_pos.row + 1;
|
+ term->tl_cursor_pos.row + 1;
|
||||||
check_cursor();
|
check_cursor();
|
||||||
coladvance(term->tl_cursor_pos.col);
|
if (coladvance(term->tl_cursor_pos.col) == FAIL)
|
||||||
|
coladvance(MAXCOL);
|
||||||
|
|
||||||
/* Display the same lines as in the terminal. */
|
/* Display the same lines as in the terminal. */
|
||||||
curwin->w_topline = term->tl_scrollback_scrolled + 1;
|
curwin->w_topline = term->tl_scrollback_scrolled + 1;
|
||||||
@@ -2264,9 +2265,8 @@ theend:
|
|||||||
|
|
||||||
/* Move a snapshot of the screen contents to the buffer, so that completion
|
/* Move a snapshot of the screen contents to the buffer, so that completion
|
||||||
* works in other buffers. */
|
* works in other buffers. */
|
||||||
if (curbuf->b_term != NULL)
|
if (curbuf->b_term != NULL && !curbuf->b_term->tl_normal_mode)
|
||||||
may_move_terminal_to_buffer(
|
may_move_terminal_to_buffer(curbuf->b_term, FALSE);
|
||||||
curbuf->b_term, curbuf->b_term->tl_normal_mode);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@@ -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 */
|
||||||
|
/**/
|
||||||
|
1838,
|
||||||
/**/
|
/**/
|
||||||
1837,
|
1837,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user