diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-01-31 13:13:34 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-02-02 16:31:49 +0100 |
commit | 0f96a21e3fd6ba989e27a992e48c084dd02d8885 (patch) | |
tree | 27dbcf4ac1a7a689724406741cfa843e80fed102 /src/nvim/screen.c | |
parent | bfe24354595d02c3e537199d34fb07739150e516 (diff) | |
download | rneovim-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.c | 12 |
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); |