0
0
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:
Bram Moolenaar
2018-05-13 19:06:12 +02:00
parent 5e3423d192
commit 620020eb1d
2 changed files with 6 additions and 4 deletions

View File

@@ -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;
} }

View File

@@ -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,
/**/ /**/