I had it once already in my grasp, in pensieve.love, but it slipped through my fingers. Let's see if this attempt sticks.
O6D22PJBXFE5XGW27UD7NDIMQYL4NXH4C4T2E73F2NXUSEB4W7QQC -- Most of the time, we update the screen_top of nodes from Viewport.y.-- But here we went the other way.-- It's very important to avoid creating a recurrence, to avoid running-- both sides of this feedback loop in a single frame. These apps are-- not very numerically precise (e.g. we force text lines to start at-- integer pixels regardless of zoom, because that keeps text crisp),-- and the computations of Viewport.y and node.top will almost certainly-- not converge. The resulting bugs are extremely difficult to chase-- down.-- The optional skip_updating_screen_top_for arg ensures we don't run-- the other side of the feedback loop.
-- Most of the time, we update the screen_top of nodes from Viewport.y.-- But here we went the other way.-- It's very important to avoid creating a recurrence, to avoid running-- both sides of this feedback loop in a single frame. These apps are-- not very numerically precise (e.g. we force text lines to start at-- integer pixels regardless of zoom, because that keeps text crisp),-- and the computations of Viewport.y and node.top will almost certainly-- not converge. The resulting bugs are extremely difficult to chase-- down.-- The optional skip_updating_screen_top_for arg ensures we don't run-- the other side of the feedback loop.