Refactoring knockout
Push dirty rect undo when tool.up return dirty rect data