aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/screen.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-01-31 13:13:34 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2019-02-02 16:31:49 +0100
commit0f96a21e3fd6ba989e27a992e48c084dd02d8885 (patch)
tree27dbcf4ac1a7a689724406741cfa843e80fed102 /src/nvim/screen.c
parentbfe24354595d02c3e537199d34fb07739150e516 (diff)
downloadrneovim-0f96a21e3fd6ba989e27a992e48c084dd02d8885.tar.gz
rneovim-0f96a21e3fd6ba989e27a992e48c084dd02d8885.tar.bz2
rneovim-0f96a21e3fd6ba989e27a992e48c084dd02d8885.zip
multigrid: reset win scrolling after swap message
Diffstat (limited to 'src/nvim/screen.c')
-rw-r--r--src/nvim/screen.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 7252289e0e..759eefaecc 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -307,11 +307,15 @@ void update_screen(int type)
++display_tick; /* let syntax code know we're in a next round of
* display updating */
- /*
- * if the screen was scrolled up when displaying a message, scroll it down
- */
- if (msg_scrolled) {
+ // Tricky: vim code can reset msg_scrolled behind our back, so need
+ // separate bookkeeping for now.
+ if (msg_did_scroll) {
ui_call_win_scroll_over_reset();
+ msg_did_scroll = false;
+ }
+
+ // if the screen was scrolled up when displaying a message, scroll it down
+ if (msg_scrolled) {
clear_cmdline = true;
if (dy_flags & DY_MSGSEP) {
int valid = MAX(Rows - msg_scrollsize(), 0);