It's unfortunate that I use sx,xy for detection, but track x,y. At least we can track more carefully precisely which field is which.
QFUZ53WLZETJ7SQTEHL7NLTEXDPX2WX2S3Y7VO53SSSIFADGUTNQC
BBJCF6PTCLGQJ37LINJKTG3BBFYTLB6AV3NFJOEWNZYONQYQXU2QC
UJ2RZ43LIVRIBWIXHXMLIQIQTL32VVEN4CVU7PEBTITQFPO4EXXQC
T7T66GEUFLP3YHZN5UNOVBYK33KISJWJQKCPZU6MQH45KSU7CZZQC
J62CVGNGJZSN7TMTE2SG53O47YG4SJGJFTUFKVOZY4TM4KAC566QC
C2REOTRMF7EY6E3DAEL4ICI4O2AFAURWNQ7QCDMEZRNVM6ERM2UQC
Viewport.x = Pan.x - App.mouse_x()/Viewport.zoom Viewport.y = Pan.y - App.mouse_y()/Viewport.zoom
Viewport.x = Pan.x - App.mouse_x()/Viewport.zoom
Viewport.y = Pan.y - App.mouse_y()/Viewport.zoom
Viewport.x = Pan.sx - App.mouse_x()/Viewport.zoom Viewport.y = Pan.sy - App.mouse_y()/Viewport.zoom
Viewport.x = Pan.sx - App.mouse_x()/Viewport.zoom
Viewport.y = Pan.sy - App.mouse_y()/Viewport.zoom
print('before', Resize_node.width) print('editor before', Resize_node.editor.width)
print('before', Resize_node.width)
print('editor before', Resize_node.editor.width)
print('after', Resize_node.width)
print('editor after', Resize_node.editor.width)
Move_node.x = Move_node.x + (x - Move.x)/Viewport.zoom Move_node.y = Move_node.y + (y - Move.y)/Viewport.zoom A()
Move_node.x = Move_node.x + (x - Move.x)/Viewport.zoom
Move_node.y = Move_node.y + (y - Move.y)/Viewport.zoom
A()
Move = {x=sx, y=sy}
Move = {x=x, y=y}
Pan = {x=sx,y=sy}
Pan = {sx=sx,sy=sy}