diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-01-15 17:50:43 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-01-15 19:48:49 +0100 |
commit | 5a836d4767b76b0a5f5576f91c7022d4e106f814 (patch) | |
tree | 48f199547fcae24bb52128a388a59038a493994a | |
parent | 95fa71c6d2b4a2d86bc1e4a984efbd188fab1382 (diff) | |
download | rneovim-5a836d4767b76b0a5f5576f91c7022d4e106f814.tar.gz rneovim-5a836d4767b76b0a5f5576f91c7022d4e106f814.tar.bz2 rneovim-5a836d4767b76b0a5f5576f91c7022d4e106f814.zip |
screen: don't unconditionally clear messages on window scroll
In vim, scrolling a window might mess up the cmdline. To keep it simple,
cmdline was always cleared for any window scroll. In nvim, where safe scrolling
is implemented in the TUI layer, this problem doesn't exist.
Clearing the message on scrolling, when we not do it e.g when switching tabs
is a bit weird, as the former is a much smaller context change.
A vim patch introduced the possibility to avoid the cmdlline clear for
redraws caused by async events. This case will now trivially be covered,
as the redraw is always avoided.
vim-patch:8.0.0592: if a job writes to a buffer screen is not updated
-rw-r--r-- | src/nvim/screen.c | 4 | ||||
-rw-r--r-- | test/functional/ex_cmds/cmd_map_spec.lua | 4 | ||||
-rw-r--r-- | test/functional/ui/mouse_spec.lua | 6 |
3 files changed, 5 insertions, 9 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index da29522b1b..2467cf192f 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -6274,10 +6274,6 @@ static int win_do_lines(win_T *wp, int row, int line_count, int del) return OK; } - // when scrolling, the message on the command line should be cleared, - // otherwise it will stay there forever. - check_for_delay(false); - clear_cmdline = true; int retval; if (del) { retval = grid_del_lines(&wp->w_grid, row, line_count, diff --git a/test/functional/ex_cmds/cmd_map_spec.lua b/test/functional/ex_cmds/cmd_map_spec.lua index a5ce1abff7..0b2190bbcf 100644 --- a/test/functional/ex_cmds/cmd_map_spec.lua +++ b/test/functional/ex_cmds/cmd_map_spec.lua @@ -279,7 +279,7 @@ describe('mappings with <Cmd>', function() {1:~ }| {1:~ }| {1:~ }| - | + :normal ,x | ]]) eq('Vim:E492: Not an editor command: nosuchcommand', exc_exec("normal ,f")) @@ -294,7 +294,7 @@ describe('mappings with <Cmd>', function() {1:~ }| {1:~ }| {1:~ }| - | + :normal ,x | ]]) feed_command(':%d') diff --git a/test/functional/ui/mouse_spec.lua b/test/functional/ui/mouse_spec.lua index 3890f0f7ba..8d35df6f48 100644 --- a/test/functional/ui/mouse_spec.lua +++ b/test/functional/ui/mouse_spec.lua @@ -662,7 +662,7 @@ describe('ui/mouse/input', function() | {0:~ }| {4:[No Name] [+] }| - | + :vsp | ]]) feed('<ScrollWheelUp><27,0>') screen:expect([[ @@ -679,7 +679,7 @@ describe('ui/mouse/input', function() | {0:~ }| {4:[No Name] [+] }| - | + :vsp | ]]) feed('<ScrollWheelUp><27,7><ScrollWheelUp>') screen:expect([[ @@ -696,7 +696,7 @@ describe('ui/mouse/input', function() many | lines | {4:[No Name] [+] }| - | + :vsp | ]]) end) |