mirror of
https://github.com/neovim/neovim.git
synced 2025-10-12 21:06:13 +00:00
fix(ui2): don't scroll beyond eob in dialog window #36116
Problem: Forward page scrolling reveals eob lines in the dialog window. Solution: Check if the end of the buffer is visible before scrolling down.
This commit is contained in:
@@ -544,11 +544,11 @@ function M.set_pos(type)
|
|||||||
f = [[\<C-F>]],
|
f = [[\<C-F>]],
|
||||||
b = [[\<C-B>]],
|
b = [[\<C-B>]],
|
||||||
}
|
}
|
||||||
if page_keys[key] then
|
local info = page_keys[key] and fn.getwininfo(ext.wins.dialog)[1]
|
||||||
local topline = fn.getwininfo(ext.wins.dialog)[1].topline
|
if info and (key ~= 'f' or info.botline < api.nvim_buf_line_count(ext.bufs.dialog)) then
|
||||||
fn.win_execute(ext.wins.dialog, ('exe "norm! %s"'):format(page_keys[key]))
|
fn.win_execute(ext.wins.dialog, ('exe "norm! %s"'):format(page_keys[key]))
|
||||||
set_top_bot_spill()
|
set_top_bot_spill()
|
||||||
return fn.getwininfo(ext.wins.dialog)[1].topline ~= topline and '' or nil
|
return fn.getwininfo(ext.wins.dialog)[1].topline ~= info.topline and '' or nil
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
elseif type == 'msg' then
|
elseif type == 'msg' then
|
||||||
|
@@ -344,7 +344,23 @@ describe('messages2', function()
|
|||||||
99 |
|
99 |
|
||||||
Type number and <Enter> or click with the mouse (q or empty cancels): ^ |
|
Type number and <Enter> or click with the mouse (q or empty cancels): ^ |
|
||||||
]])
|
]])
|
||||||
feed('g')
|
-- No scrolling beyond end of buffer #36114
|
||||||
|
feed('f')
|
||||||
|
screen:expect([[
|
||||||
|
|
|
||||||
|
{1:~ }|*3
|
||||||
|
{3:───────────────────────────────────────────────────────────────────────}|
|
||||||
|
93 [+93] |
|
||||||
|
94 |
|
||||||
|
95 |
|
||||||
|
96 |
|
||||||
|
97 |
|
||||||
|
98 |
|
||||||
|
99 |
|
||||||
|
Type number and <Enter> or click with the mouse (q or empty cancels): f|
|
||||||
|
^ |
|
||||||
|
]])
|
||||||
|
feed('<Backspace>g')
|
||||||
screen:expect(top)
|
screen:expect(top)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user