on.mouse_press = function(x,y, mouse_button) print('mouse press', x,y) if Cursor_node then Cursor_node.show_cursor = nil Cursor_node = nil end local sx, sy = sx(x), sy(y) local node = on_node(sx,sy) if node then -- position cursor in node Cursor_node = node print('within node') edit.mouse_press(node.editor, x,y, mouse_button) print('cursor at', node.editor.cursor_x, node.editor.cursor_y) return end node = on_move_bar(sx,sy) if node then Move_node = node Move = {sx=sx-Move_node.x, sy=sy-Move_node.y} return end node = on_resize(sx,sy) if node then Resize_node = node Resize = {sx=sx-Resize_node.width} return end node = on_border(sx,sy) if node then local edge = on_edge(sx,sy) if edge == nil then Edge = {source=node, s={sx=sx, sy=sy}, e={sx=sx, sy=sy}} else detach_edge(edge) Global_next_save = Current_time + 3 A() end return end -- pan surface Pan = {sx=sx, sy=sy} end