on.text_input = function(t) print('text input', t) if Cursor_node then local old_top = {line=Cursor_node.editor.screen_top1.line, pos=Cursor_node.editor.screen_top1.pos} edit.text_input(Cursor_node.editor, t) if not eq(Cursor_node.editor.screen_top1, old_top) then Viewport.y = Cursor_node.y + y_of_schema1(Cursor_node.editor, Cursor_node.editor.screen_top1) end B(--[[preserve screen_top of cursor node]] true) end end