Undo/redo viewport drag operations