From 75d81620ab617f43a005d741eb0c8157191cfb83 Mon Sep 17 00:00:00 2001 From: Beka Westberg Date: Fri, 17 May 2024 19:26:10 +0000 Subject: [PATCH] fix: undoing block delete over trashcan creates block in wrong place (#8126) --- core/dragging/dragger.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/dragging/dragger.ts b/core/dragging/dragger.ts index 25266799e..c86d8b1ea 100644 --- a/core/dragging/dragger.ts +++ b/core/dragging/dragger.ts @@ -13,6 +13,7 @@ import {WorkspaceSvg} from '../workspace_svg.js'; import {ComponentManager} from '../component_manager.js'; import {IDeleteArea} from '../interfaces/i_delete_area.js'; import * as registry from '../registry.js'; +import * as eventUtils from '../events/utils.js'; export class Dragger implements IDragger { protected startLoc: Coordinate; @@ -94,6 +95,7 @@ export class Dragger implements IDragger { /** Handles any drag cleanup. */ onDragEnd(e: PointerEvent) { + const origGroup = eventUtils.getGroup(); const dragTarget = this.workspace.getDragTarget(e); if (dragTarget) { this.dragTarget?.onDrop(this.draggable); @@ -109,7 +111,12 @@ export class Dragger implements IDragger { isDeletable(this.draggable) && this.wouldDeleteDraggable(e, this.draggable) ) { + // We want to make sure the delete gets grouped with any possible + // move event. + const newGroup = eventUtils.getGroup(); + eventUtils.setGroup(origGroup); this.draggable.dispose(); + eventUtils.setGroup(newGroup); } }