aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-10-04 21:31:28 +0800
committerGitHub <noreply@github.com>2024-10-04 21:31:28 +0800
commit86c5c8724bd85154c4e94474d1d9a0b01e296028 (patch)
tree108705dd183695dc07c5dd0f8b9ea460f2f255b2
parent305012ea073267492e1d626a304c6993b0dfa145 (diff)
downloadrneovim-86c5c8724bd85154c4e94474d1d9a0b01e296028.tar.gz
rneovim-86c5c8724bd85154c4e94474d1d9a0b01e296028.tar.bz2
rneovim-86c5c8724bd85154c4e94474d1d9a0b01e296028.zip
fix(mouse): indicate X1 and X2 button clicks on statusline (#30655)
-rw-r--r--src/nvim/mouse.c6
-rw-r--r--test/functional/ui/statusline_spec.lua16
2 files changed, 21 insertions, 1 deletions
diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c
index 5e2f2f0320..884bc88d73 100644
--- a/src/nvim/mouse.c
+++ b/src/nvim/mouse.c
@@ -194,7 +194,11 @@ static void call_click_def_func(StlClickDefinition *click_defs, int col, int whi
? "r"
: (which_button == MOUSE_MIDDLE
? "m"
- : "?")))
+ : (which_button == MOUSE_X1
+ ? "x1"
+ : (which_button == MOUSE_X2
+ ? "x2"
+ : "?")))))
},
},
{
diff --git a/test/functional/ui/statusline_spec.lua b/test/functional/ui/statusline_spec.lua
index 3087a0cde1..937e709d66 100644
--- a/test/functional/ui/statusline_spec.lua
+++ b/test/functional/ui/statusline_spec.lua
@@ -63,6 +63,22 @@ for _, model in ipairs(mousemodels) do
eq('0 3 r', eval('g:testvar'))
api.nvim_input_mouse('right', 'press', '', 0, 6, 28)
eq('0 4 r', eval('g:testvar'))
+ api.nvim_input_mouse('x1', 'press', '', 0, 6, 17)
+ eq('0 1 x1', eval('g:testvar'))
+ api.nvim_input_mouse('x1', 'press', '', 0, 6, 17)
+ eq('0 2 x1', eval('g:testvar'))
+ api.nvim_input_mouse('x1', 'press', '', 0, 6, 17)
+ eq('0 3 x1', eval('g:testvar'))
+ api.nvim_input_mouse('x1', 'press', '', 0, 6, 17)
+ eq('0 4 x1', eval('g:testvar'))
+ api.nvim_input_mouse('x2', 'press', '', 0, 6, 28)
+ eq('0 1 x2', eval('g:testvar'))
+ api.nvim_input_mouse('x2', 'press', '', 0, 6, 28)
+ eq('0 2 x2', eval('g:testvar'))
+ api.nvim_input_mouse('x2', 'press', '', 0, 6, 28)
+ eq('0 3 x2', eval('g:testvar'))
+ api.nvim_input_mouse('x2', 'press', '', 0, 6, 28)
+ eq('0 4 x2', eval('g:testvar'))
end)
it('works with control characters and highlight', function()