diff options
-rw-r--r-- | src/screen.c | 18 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/screen.c b/src/screen.c index 2f08afb7a8..4ddded9bfc 100644 --- a/src/screen.c +++ b/src/screen.c @@ -422,7 +422,7 @@ redraw_after_callback(void) ; /* do nothing */ else if (State & CMDLINE) redrawcmdline(); - else if ((State & NORMAL) || (State & INSERT)) + else if (State & (NORMAL | INSERT)) { update_screen(0); setcursor(); @@ -486,8 +486,6 @@ update_curbuf(int type) } /* - * update_screen() - * * Based on the current value of curwin->w_topline, transfer a screenfull * of stuff from Filemem to ScreenLines[], and update curwin->w_botline. */ @@ -499,6 +497,10 @@ update_screen(int type) #if defined(FEAT_SEARCH_EXTRA) || defined(FEAT_CLIPBOARD) int did_one; #endif +#ifdef FEAT_GUI + int gui_cursor_col; + int gui_cursor_row; +#endif /* Don't do anything if the screen structures are (not yet) valid. */ if (!screen_valid(TRUE)) @@ -696,7 +698,11 @@ update_screen(int type) * scrolling may make it difficult to redraw the text under * it. */ if (gui.in_use) + { + gui_cursor_col = gui.cursor_col; + gui_cursor_row = gui.cursor_row; gui_undraw_cursor(); + } #endif } #endif @@ -752,7 +758,13 @@ update_screen(int type) { out_flush(); /* required before updating the cursor */ if (did_one) + { + /* Put the GUI position where the cursor was, gui_update_cursor() + * uses that. */ + gui.col = gui_cursor_col; + gui.row = gui_cursor_row; gui_update_cursor(FALSE, FALSE); + } gui_update_scrollbars(FALSE); } #endif diff --git a/src/version.c b/src/version.c index 38193e2a31..598135cc58 100644 --- a/src/version.c +++ b/src/version.c @@ -759,6 +759,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2003, +/**/ 2002, /**/ 2001, |