In addition to being more complex, pane.screen_bottom1 is not well-behaved when you never draw any lines. But I seem to be doing the right thing with pane.bottom.
RCKGEWD6Y7MLTIEFLMC4NBCNKTJNQR2DX3UXOGVJS3MOCFKHYUVAC
if pane.screen_bottom1.line < #pane.lines then
return false
end
local screen_line_starting_pos = pane.line_cache[pane.screen_bottom1.line].screen_line_starting_pos
return pane.screen_bottom1.pos == screen_line_starting_pos[#screen_line_starting_pos]
return pane.bottom < App.screen.height - Line_height