From d974a3dcbb3757ebeb78fa64054c795ab7acdf1a Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 15 Oct 2023 17:19:01 +0800 Subject: vim-patch:9.0.2032: cannot get mouse click pos for tab or virt text (#25653) Problem: Cannot accurately get mouse clicking position when clicking on a TAB or with virtual text. Solution: Add a "coladd" field to getmousepos() result. closes: vim/vim#13335 https://github.com/vim/vim/commit/f5a94d5165bb9e390797da50a1fa7a87df3fbee4 --- test/functional/ui/fold_spec.lua | 7 ++++--- test/functional/ui/mouse_spec.lua | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'test/functional') diff --git a/test/functional/ui/fold_spec.lua b/test/functional/ui/fold_spec.lua index 264c0355ae..9a0182ea29 100644 --- a/test/functional/ui/fold_spec.lua +++ b/test/functional/ui/fold_spec.lua @@ -2155,13 +2155,14 @@ describe("folded lines", function() meths.input_mouse('left', 'press', '', multigrid and 2 or 0, 4, 0) eq({ - column = 1, - line = 3, screencol = 1, screenrow = 5, - wincol = 1, winid = 1000, + wincol = 1, winrow = 5, + line = 3, + column = 1, + coladd = 0, }, funcs.getmousepos()) meths.buf_set_extmark(0, ns, 1, 0, { virt_lines = {{{"more virt_line below line 2", ""}}} }) diff --git a/test/functional/ui/mouse_spec.lua b/test/functional/ui/mouse_spec.lua index fd24174f74..1356ba3db8 100644 --- a/test/functional/ui/mouse_spec.lua +++ b/test/functional/ui/mouse_spec.lua @@ -1717,6 +1717,7 @@ describe('ui/mouse/input', function() eq(0, mousepos.wincol) eq(0, mousepos.line) eq(0, mousepos.column) + eq(0, mousepos.coladd) end end end @@ -1736,15 +1737,18 @@ describe('ui/mouse/input', function() eq(win_col + 1, mousepos.wincol) local line = 0 local column = 0 + local coladd = 0 if win_row > 0 and win_row < opts.height + 1 and win_col > 0 and win_col < opts.width + 1 then -- Because of border, win_row and win_col don't need to be -- incremented by 1. line = math.min(win_row, funcs.line('$')) column = math.min(win_col, #funcs.getline(line) + 1) + coladd = win_col - column end eq(line, mousepos.line) eq(column, mousepos.column) + eq(coladd, mousepos.coladd) end end @@ -1764,8 +1768,10 @@ describe('ui/mouse/input', function() eq(win_col + 1, mousepos.wincol) local line = math.min(win_row + 1, funcs.line('$')) local column = math.min(win_col + 1, #funcs.getline(line) + 1) + local coladd = win_col + 1 - column eq(line, mousepos.line) eq(column, mousepos.column) + eq(coladd, mousepos.coladd) end end @@ -1788,8 +1794,10 @@ describe('ui/mouse/input', function() eq(win_col + 1, mousepos.wincol) local line = math.min(win_row + 1, funcs.line('$')) local column = math.min(win_col + 1, #funcs.getline(line) + 1) + local coladd = win_col + 1 - column eq(line, mousepos.line) eq(column, mousepos.column) + eq(coladd, mousepos.coladd) end end end -- cgit