aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluukvbaal <31730729+luukvbaal@users.noreply.github.com>2023-01-13 00:36:59 +0100
committerGitHub <noreply@github.com>2023-01-13 07:36:59 +0800
commit4876654d4cc9bb43f266c7c9d412f36ab57fa571 (patch)
treeaff6358145125fefcbb631cc6c14d6a6acdbedb0
parentf2141de9e462ed8976b2a59337c32a0fcba2a11d (diff)
downloadrneovim-4876654d4cc9bb43f266c7c9d412f36ab57fa571.tar.gz
rneovim-4876654d4cc9bb43f266c7c9d412f36ab57fa571.tar.bz2
rneovim-4876654d4cc9bb43f266c7c9d412f36ab57fa571.zip
fix(mouse): statusline click registered as statuscolumn (#21748)
fix(statuscolumn): statusline click registered as statuscolumn Problem: Status line click is registered as status status column click. Solution: Check that mouse is not on the status line. Resolve https://github.com/luukvbaal/statuscol.nvim/issues/4.
-rw-r--r--src/nvim/mouse.c2
-rw-r--r--test/functional/ui/statuscolumn_spec.lua8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/nvim/mouse.c b/src/nvim/mouse.c
index ee8c553cd5..a87143fe12 100644
--- a/src/nvim/mouse.c
+++ b/src/nvim/mouse.c
@@ -1110,7 +1110,7 @@ retnomove:
? wp->w_winbar_height != 0
: false;
- on_statuscol = (grid == (col < win_col_off(wp)))
+ on_statuscol = !on_status_line && !on_winbar && col < win_col_off(wp)
? *wp->w_p_stc != NUL
: false;
diff --git a/test/functional/ui/statuscolumn_spec.lua b/test/functional/ui/statuscolumn_spec.lua
index 2905f1d64c..74e6d61ff3 100644
--- a/test/functional/ui/statuscolumn_spec.lua
+++ b/test/functional/ui/statuscolumn_spec.lua
@@ -366,6 +366,14 @@ describe('statuscolumn', function()
eq('0 3 r 7', eval("g:testvar"))
meths.input_mouse('right', 'press', '', 0, 3, 0)
eq('0 4 r 7', eval("g:testvar"))
+ command('set laststatus=2 winbar=%f')
+ command('let g:testvar=""')
+ -- Check that winbar click doesn't register as statuscolumn click
+ meths.input_mouse('right', 'press', '', 0, 0, 0)
+ eq('', eval("g:testvar"))
+ -- Check that statusline click doesn't register as statuscolumn click
+ meths.input_mouse('right', 'press', '', 0, 12, 0)
+ eq('', eval("g:testvar"))
end)
it('fits maximum multibyte foldcolumn #21759', function()