I need to run A() because I'm scaling the font, and that requires
recomputing heights.
Things were different at the start of this project, because I scaled the
font rather than reinitialize it when zooming.
I still see strange artifacts where a box seems overly long as its
bottom border rises above the bottom edge of the viewport. But as it
continues to rise it snaps to the right height for the text.
One benefit: now I don't need to redundantly set font twice in a single
frame.
I don't know why this was so hard, but I don't need this variable
preserve_screen_top_of_cursor_node at all. We only set it when the
cursor is in some node, but we also only check for when the current node
is the cursor. Comparing with a nil cursor node works just as well.
I've also checked that driver.love doesn't need
preserve_screen_top_of_cursor_node. I think it came from pensieve.love,
where I've since taken it out. Did I ever need it even there?