fix(terminal): correctly forward mouse events

This commit is contained in:
zeertzjq
2021-12-27 06:08:16 +08:00
parent 56f3c41f5f
commit e0956f7452
2 changed files with 100 additions and 23 deletions

View File

@@ -66,7 +66,7 @@ describe(':terminal mouse', function()
]])
end)
it('will forward mouse clicks to the program', function()
it('will forward mouse press, drag and release to the program', function()
if helpers.pending_win32(pending) then return end
feed('<LeftMouse><1,2>')
screen:expect([[
@@ -78,6 +78,36 @@ describe(':terminal mouse', function()
"#{1: } |
{3:-- TERMINAL --} |
]])
feed('<LeftDrag><2,2>')
screen:expect([[
line27 |
line28 |
line29 |
line30 |
mouse enabled |
@##{1: } |
{3:-- TERMINAL --} |
]])
feed('<LeftDrag><3,2>')
screen:expect([[
line27 |
line28 |
line29 |
line30 |
mouse enabled |
@$#{1: } |
{3:-- TERMINAL --} |
]])
feed('<LeftRelease><3,2>')
screen:expect([[
line27 |
line28 |
line29 |
line30 |
mouse enabled |
#$#{1: } |
{3:-- TERMINAL --} |
]])
end)
it('will forward mouse scroll to the program', function()
@@ -94,6 +124,60 @@ describe(':terminal mouse', function()
]])
end)
it('dragging and scrolling do not interfere with each other', function()
if helpers.pending_win32(pending) then return end
feed('<LeftMouse><1,2>')
screen:expect([[
line27 |
line28 |
line29 |
line30 |
mouse enabled |
"#{1: } |
{3:-- TERMINAL --} |
]])
feed('<ScrollWheelUp><1,2>')
screen:expect([[
line27 |
line28 |
line29 |
line30 |
mouse enabled |
`"#{1: } |
{3:-- TERMINAL --} |
]])
feed('<LeftDrag><2,2>')
screen:expect([[
line27 |
line28 |
line29 |
line30 |
mouse enabled |
@##{1: } |
{3:-- TERMINAL --} |
]])
feed('<ScrollWheelUp><2,2>')
screen:expect([[
line27 |
line28 |
line29 |
line30 |
mouse enabled |
`##{1: } |
{3:-- TERMINAL --} |
]])
feed('<LeftRelease><2,2>')
screen:expect([[
line27 |
line28 |
line29 |
line30 |
mouse enabled |
###{1: } |
{3:-- TERMINAL --} |
]])
end)
it('will forward mouse clicks to the program with the correct even if set nu', function()
if helpers.pending_win32(pending) then return end
nvim('command', 'set number')