From 8efb43598d76853998d41e6ff7611d3e7a9d0e08 Mon Sep 17 00:00:00 2001
From: Benjamin Wheeler <wheeler.benjamin@gmail.com>
Date: Thu, 7 Jan 2021 09:26:55 -0500
Subject: [PATCH] Revert "Only call Renderer.pick() on draggable targets in
 Stage.onStartDrag"

---
 src/containers/stage.jsx | 21 ++++-----------------
 1 file changed, 4 insertions(+), 17 deletions(-)

diff --git a/src/containers/stage.jsx b/src/containers/stage.jsx
index 79a41db7e..8e1ac9248 100644
--- a/src/containers/stage.jsx
+++ b/src/containers/stage.jsx
@@ -342,29 +342,16 @@ class Stage extends React.Component {
     }
     onStartDrag (x, y) {
         if (this.state.dragId) return;
-
-        // Targets with no attached drawable cannot be dragged.
-        let draggableTargets = this.props.vm.runtime.targets.filter(
-            target => Number.isFinite(target.drawableID)
-        );
-
-        // Because pick queries can be expensive, only perform them for drawables that are currently draggable.
-        // If we're in the editor, we can drag all targets. Otherwise, filter.
-        if (!this.props.useEditorDragStyle) {
-            draggableTargets = draggableTargets.filter(
-                target => target.draggable
-            );
-        }
-        if (draggableTargets.length === 0) return;
-
-        const draggableIDs = draggableTargets.map(target => target.drawableID);
-        const drawableId = this.renderer.pick(x, y, 1, 1, draggableIDs);
+        const drawableId = this.renderer.pick(x, y);
         if (drawableId === null) return;
         const targetId = this.props.vm.getTargetIdForDrawableId(drawableId);
         if (targetId === null) return;
 
         const target = this.props.vm.runtime.getTargetById(targetId);
 
+        // Do not start drag unless in editor drag mode or target is draggable
+        if (!(this.props.useEditorDragStyle || target.draggable)) return;
+
         // Dragging always brings the target to the front
         target.goToFront();
 
-- 
GitLab