Viewer: preserve position when rescaling