]> granicus.if.org Git - vim/commitdiff
patch 8.0.0819: cursor not positioned in terminal window v8.0.0819
authorBram Moolenaar <Bram@vim.org>
Sun, 30 Jul 2017 16:47:19 +0000 (18:47 +0200)
committerBram Moolenaar <Bram@vim.org>
Sun, 30 Jul 2017 16:47:19 +0000 (18:47 +0200)
Problem:    After changing current window the cursor position in the terminal
            window is not updated.
Solution:   Set w_wrow, w_wcol and w_valid.

src/terminal.c
src/version.c

index 45c6175708b31012a36803e8eff8f0066e25c4b7..be76161e512ee1e1042c52c63f27083880356622 100644 (file)
@@ -857,6 +857,14 @@ send_keys_to_term(term_T *term, int c, int typed)
     return OK;
 }
 
+    static void
+position_cursor(win_T *wp, VTermPos *pos)
+{
+    wp->w_wrow = MIN(pos->row, MAX(0, wp->w_height - 1));
+    wp->w_wcol = MIN(pos->col, MAX(0, wp->w_width - 1));
+    wp->w_valid |= (VALID_WCOL|VALID_WROW);
+}
+
 /*
  * Returns TRUE if the current window contains a terminal and we are sending
  * keys to the job.
@@ -887,6 +895,7 @@ terminal_loop(void)
 
     if (*curwin->w_p_tk != NUL)
        termkey = string_to_key(curwin->w_p_tk, TRUE);
+    position_cursor(curwin, &curbuf->b_term->tl_cursor_pos);
 
     for (;;)
     {
@@ -971,13 +980,6 @@ term_job_ended(job_T *job)
     }
 }
 
-    static void
-position_cursor(win_T *wp, VTermPos *pos)
-{
-    wp->w_wrow = MIN(pos->row, MAX(0, wp->w_height - 1));
-    wp->w_wcol = MIN(pos->col, MAX(0, wp->w_width - 1));
-}
-
     static void
 may_toggle_cursor(term_T *term)
 {
index 5b831d41877552215c48cd3f621460d19009d953..2d4c50e0efb0fb9409a3b6aa57a0f2f8ff30aab2 100644 (file)
@@ -769,6 +769,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    819,
 /**/
     818,
 /**/