aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/statusline_spec.lua
diff options
context:
space:
mode:
authorFamiu Haque <famiuhaque@protonmail.com>2022-07-15 22:15:02 +0600
committerGitHub <noreply@github.com>2022-07-15 09:15:02 -0700
commit6645f59832682e9a3623c2b1e45369529bef201a (patch)
treec0635d300fbf6c64d05f9380b6ce3999736c0d8f /test/functional/ui/statusline_spec.lua
parent5c49129c5e334a9c7da253499cd9aa19358d4ac9 (diff)
downloadrneovim-6645f59832682e9a3623c2b1e45369529bef201a.tar.gz
rneovim-6645f59832682e9a3623c2b1e45369529bef201a.tar.bz2
rneovim-6645f59832682e9a3623c2b1e45369529bef201a.zip
fix: right-click in clickable statusline #19252
Problem: 1. Right-click does not work in statusline unless you left-click first (to focus the statusline). 2. Modifier (e.g. shift+rightclick) does not work in statusline. Solution: Make clickable statusline sections receive right-clicks regardless of whether the statusline is focused. Closes #18994
Diffstat (limited to 'test/functional/ui/statusline_spec.lua')
-rw-r--r--test/functional/ui/statusline_spec.lua25
1 files changed, 23 insertions, 2 deletions
diff --git a/test/functional/ui/statusline_spec.lua b/test/functional/ui/statusline_spec.lua
index 2733b9dd4a..82e669856f 100644
--- a/test/functional/ui/statusline_spec.lua
+++ b/test/functional/ui/statusline_spec.lua
@@ -20,7 +20,12 @@ describe('statusline clicks', function()
command('set laststatus=2')
exec([=[
function! MyClickFunc(minwid, clicks, button, mods)
- let g:testvar = printf("%d %d %s", a:minwid, a:clicks, a:button)
+ let mods = trim(a:mods)
+ if mods ==# ''
+ let g:testvar = printf("%d %d %s", a:minwid, a:clicks, a:button)
+ else
+ let g:testvar = printf("%d %d %s %s", a:minwid, a:clicks, a:button, mods)
+ endif
endfunction
]=])
end)
@@ -37,7 +42,7 @@ describe('statusline clicks', function()
meths.set_option('winbar', 'Not clicky stuff %0@MyClickFunc@Clicky stuff%T')
meths.input_mouse('left', 'press', '', 0, 0, 17)
eq('0 1 l', eval("g:testvar"))
- meths.input_mouse('right', 'press', '', 0, 6, 17)
+ meths.input_mouse('right', 'press', '', 0, 0, 17)
eq('0 1 r', eval("g:testvar"))
end)
@@ -84,6 +89,22 @@ describe('statusline clicks', function()
meths.input_mouse('left', 'press', '', 0, 6, 0)
eq(2, #meths.list_tabpages())
end)
+
+ it("right click works when statusline isn't focused #18994", function()
+ meths.set_option('statusline', 'Not clicky stuff %0@MyClickFunc@Clicky stuff%T')
+ meths.input_mouse('right', 'press', '', 0, 6, 17)
+ eq('0 1 r', eval("g:testvar"))
+ meths.input_mouse('right', 'press', '', 0, 6, 17)
+ eq('0 2 r', eval("g:testvar"))
+ end)
+
+ it("click works with modifiers #18994", function()
+ meths.set_option('statusline', 'Not clicky stuff %0@MyClickFunc@Clicky stuff%T')
+ meths.input_mouse('right', 'press', 's', 0, 6, 17)
+ eq('0 1 r s', eval("g:testvar"))
+ meths.input_mouse('left', 'press', 's', 0, 6, 17)
+ eq('0 1 l s', eval("g:testvar"))
+ end)
end)
describe('global statusline', function()