diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-10-20 22:18:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-20 22:18:26 +0800 |
commit | 9b8907d90508d7b66f025bbd1f5a48a78c5ce035 (patch) | |
tree | 28ba9bba6705cf19f8f3279c6b0b3ade41c81f4c /test/functional/ui/float_spec.lua | |
parent | dff684fdb3d2e787ac6d6fd49ec52ede604fd0ce (diff) | |
download | rneovim-9b8907d90508d7b66f025bbd1f5a48a78c5ce035.tar.gz rneovim-9b8907d90508d7b66f025bbd1f5a48a78c5ce035.tar.bz2 rneovim-9b8907d90508d7b66f025bbd1f5a48a78c5ce035.zip |
feat(float): allow enabling mouse for non-focusable window (#30844)
Problem: Cannot allow mouse interaction for non-focusable float window.
Solution: Add a "mouse" field to float window config.
Diffstat (limited to 'test/functional/ui/float_spec.lua')
-rw-r--r-- | test/functional/ui/float_spec.lua | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/test/functional/ui/float_spec.lua b/test/functional/ui/float_spec.lua index 9b77cb4014..b76474fd58 100644 --- a/test/functional/ui/float_spec.lua +++ b/test/functional/ui/float_spec.lua @@ -1278,7 +1278,7 @@ describe('float window', function() it('return their configuration', function() local buf = api.nvim_create_buf(false, false) local win = api.nvim_open_win(buf, false, {relative='editor', width=20, height=2, row=3, col=5, zindex=60}) - local expected = {anchor='NW', col=5, external=false, focusable=true, height=2, relative='editor', row=3, width=20, zindex=60, hide=false} + local expected = {anchor='NW', col=5, external=false, focusable=true, mouse=true, height=2, relative='editor', row=3, width=20, zindex=60, hide=false} eq(expected, api.nvim_win_get_config(win)) eq(true, exec_lua([[ local expected, win = ... @@ -1290,11 +1290,11 @@ describe('float window', function() end return true]], expected, win)) - eq({external=false, focusable=true, hide=false, relative='',split="left",width=40,height=6}, api.nvim_win_get_config(0)) + eq({external=false, focusable=true, mouse=true, hide=false, relative='',split="left",width=40,height=6}, api.nvim_win_get_config(0)) if multigrid then api.nvim_win_set_config(win, {external=true, width=10, height=1}) - eq({external=true,focusable=true,width=10,height=1,relative='',hide=false}, api.nvim_win_get_config(win)) + eq({external=true,focusable=true,mouse=true,width=10,height=1,relative='',hide=false}, api.nvim_win_get_config(win)) end end) @@ -3988,7 +3988,7 @@ describe('float window', function() ]]} end eq({relative='win', width=12, height=1, bufpos={1,32}, anchor='NW', hide=false, - external=false, col=0, row=1, win=firstwin, focusable=true, zindex=50}, api.nvim_win_get_config(win)) + external=false, col=0, row=1, win=firstwin, focusable=true, mouse=true, zindex=50}, api.nvim_win_get_config(win)) feed('<c-e>') if multigrid then @@ -5606,7 +5606,7 @@ describe('float window', function() end end) - it("focus by mouse", function() + local function test_float_mouse_focus() if multigrid then api.nvim_input_mouse('left', 'press', '', 4, 0, 0) screen:expect{grid=[[ @@ -5660,10 +5660,18 @@ describe('float window', function() | ]]) end + end + + it("focus by mouse (focusable=true)", function() + test_float_mouse_focus() end) - it("focus by mouse (focusable=false)", function() - api.nvim_win_set_config(win, {focusable=false}) + it("focus by mouse (focusable=false, mouse=true)", function() + api.nvim_win_set_config(win, {focusable=false, mouse=true}) + test_float_mouse_focus() + end) + + local function test_float_mouse_no_focus() api.nvim_buf_set_lines(0, -1, -1, true, {"a"}) expected_pos[4][6] = false if multigrid then @@ -5721,6 +5729,16 @@ describe('float window', function() | ]]) end + end + + it("focus by mouse (focusable=false)", function() + api.nvim_win_set_config(win, {focusable=false}) + test_float_mouse_no_focus() + end) + + it("focus by mouse (focusable=true, mouse=false)", function() + api.nvim_win_set_config(win, {mouse=false}) + test_float_mouse_no_focus() end) it("j", function() |