aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-08-04 09:34:13 +0800
committerGitHub <noreply@github.com>2023-08-04 09:34:13 +0800
commit0a7fda6fa0067ee61fee60d123967c3f14431007 (patch)
tree098fce25aa220fafc4976e7fe8a8eb2a42697529
parentc4f775fa57ae4d6fdf4be962edb0a1d0c82eaf72 (diff)
downloadrneovim-0a7fda6fa0067ee61fee60d123967c3f14431007.tar.gz
rneovim-0a7fda6fa0067ee61fee60d123967c3f14431007.tar.bz2
rneovim-0a7fda6fa0067ee61fee60d123967c3f14431007.zip
fix(terminal): include modifiers when forwarding mouse (#24549)
-rw-r--r--src/nvim/terminal.c4
-rw-r--r--test/functional/terminal/buffer_spec.lua4
2 files changed, 7 insertions, 1 deletions
diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c
index 56f364bf0a..3315936b6a 100644
--- a/src/nvim/terminal.c
+++ b/src/nvim/terminal.c
@@ -1444,7 +1444,9 @@ static bool send_mouse_event(Terminal *term, int c)
return false;
}
- mouse_action(term, button, row, col - offset, pressed, 0);
+ VTermModifier mod = VTERM_MOD_NONE;
+ convert_modifiers(c, &mod);
+ mouse_action(term, button, row, col - offset, pressed, mod);
return false;
}
diff --git a/test/functional/terminal/buffer_spec.lua b/test/functional/terminal/buffer_spec.lua
index 888d123b17..ce47e4715c 100644
--- a/test/functional/terminal/buffer_spec.lua
+++ b/test/functional/terminal/buffer_spec.lua
@@ -464,6 +464,10 @@ describe('terminal input', function()
'<S-Up>', '<C-Up>', '<Up>', '<S-Down>', '<C-Down>', '<Down>',
'<S-Left>', '<C-Left>', '<Left>', '<S-Right>', '<C-Right>', '<Right>',
'<S-Home>', '<C-Home>', '<Home>', '<S-End>', '<C-End>', '<End>',
+ '<C-LeftMouse>', '<C-LeftRelease>', '<2-LeftMouse>', '<2-LeftRelease>',
+ '<S-RightMouse>', '<S-RightRelease>', '<2-RightMouse>', '<2-RightRelease>',
+ '<M-MiddleMouse>', '<M-MiddleRelease>', '<2-MiddleMouse>', '<2-MiddleRelease>',
+ '<S-ScrollWheelUp>', '<S-ScrollWheelDown>', '<ScrollWheelUp>', '<ScrollWheelDown>',
}) do
feed('<CR><C-V>' .. key)
retry(nil, nil, function() eq(key, meths.get_current_line()) end)