diff --git a/core/dragging/block_drag_strategy.ts b/core/dragging/block_drag_strategy.ts index c3be97da68..c9a1ea0abf 100644 --- a/core/dragging/block_drag_strategy.ts +++ b/core/dragging/block_drag_strategy.ts @@ -384,19 +384,24 @@ export class BlockDragStrategy implements IDragStrategy { if (this.connectionCandidate) { // Applying connections also rerenders the relevant blocks. this.applyConnections(this.connectionCandidate); + this.disposeStep(); } else { - this.block.queueRender(); + this.block.queueRender().then(() => this.disposeStep()); } + + if (!this.inGroup) { + eventUtils.setGroup(false); + } + } + + /** Disposes of any state at the end of the drag. */ + private disposeStep() { this.block.snapToGrid(); // Must dispose after connections are applied to not break the dynamic // connections plugin. See #7859 this.connectionPreviewer!.dispose(); this.workspace.setResizesEnabled(true); - - if (!this.inGroup) { - eventUtils.setGroup(false); - } } /** Connects the given candidate connections. */