A = function(preserve_screen_top_of_cursor_node) -- print('A') love.graphics.setFont(love.graphics.newFont(scale(20))) -- editor objects implicitly depend on current font -- translate Global_state.root to Surface Surface = {} compute_layout(Global_state.root, 0,0, Surface, preserve_screen_top_of_cursor_node) -- continue the pipeline B(preserve_screen_top_of_cursor_node) -- TODO: ugly that we're manipulating editor objects twice end