suppport direct undo for blockwise movement