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
|
||||
+ term->tl_cursor_pos.row + 1;
|
||||
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. */
|
||||
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
|
||||
* works in other buffers. */
|
||||
if (curbuf->b_term != NULL)
|
||||
may_move_terminal_to_buffer(
|
||||
curbuf->b_term, curbuf->b_term->tl_normal_mode);
|
||||
if (curbuf->b_term != NULL && !curbuf->b_term->tl_normal_mode)
|
||||
may_move_terminal_to_buffer(curbuf->b_term, FALSE);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user