XX4O3AFWGSEMXELBKVMS3GSVITFD54BAVEBDILELUQTWGH645C7QC
Z64BQNJ7BVVPVO45GRRXEASZ7E2L3774G5ZDT2UX2RZNH565LZBAC
R2ZGBQPSLZMAUJLGUYYK77F3RSHOBFBK44IM4LZ4OPNBUOGO27DAC
OTIBCAUJ3KDQJLVDN3A536DLZGNRYMGJLORZVR3WLCGXGO6UGO6AC
L2R5WULWN44SCNUPP7R7I2AQCWQR6D3E2YZA35RBXZAR2LGC6LQQC
BJ5X5O4ACBBJ56LRBBSTCW6IBQP4HAEOOOPNH3SKTA4F66YTOIDAC
BFH7KNF6DPOCKLCSTY52MMD4LKDNL4EYFJA7LZTMRW6IXZHIDNSAC
local cursor_sy = up_edge_sy(Cursor_pane.col, Cursor_pane.row) + y_of_schema1(pane, pane.cursor1)
--? print(eq(old_top, pane.screen_top1), eq(old_top, {line=1, pos=1}), pane.top, cursor_sy, cursor_sy - Display_settings.y, App.screen.height - Header_height - Line_height)
if not eq(old_top, pane.screen_top1) and eq(old_top, {line=1, pos=1}) and pane.top > Header_height and cursor_sy - Display_settings.y > App.screen.height - Header_height - Line_height then
-- pan the surface instead of scrolling within the pane
pane.screen_top1 = old_top
bring_cursor_of_cursor_pane_in_view('down')
Surface.cursor_on_screen_check = true -- cursor was on screen before keystroke, so it should remain on screen after
return
end
* select a pane that extends past bottom of viewport, hit ctrl+e, position cursor near bottom of pane, hit down arrow a few times. cursor continues to remain on screen, panning surface as necessary.
* select a pane that starts at or above top of and extends past bottom of viewport, hit ctrl+e, position cursor near bottom of pane, hit down arrow a few times. cursor continues to remain on screen, panning surface as necessary.
* select a pane that starts halfway down and extends past bottom of viewport, hit ctrl+e, position cursor near bottom of pane, hit down arrow a few times. cursor continues to remain on screen, panning surface as necessary.