aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-01-15 17:50:43 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2019-01-15 19:48:49 +0100
commit5a836d4767b76b0a5f5576f91c7022d4e106f814 (patch)
tree48f199547fcae24bb52128a388a59038a493994a
parent95fa71c6d2b4a2d86bc1e4a984efbd188fab1382 (diff)
downloadrneovim-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.c4
-rw-r--r--test/functional/ex_cmds/cmd_map_spec.lua4
-rw-r--r--test/functional/ui/mouse_spec.lua6
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)