From 673870a47eaa392b43a22870afd4e45222a4148b Mon Sep 17 00:00:00 2001
From: adroitwhiz <adroitwhiz@protonmail.com>
Date: Mon, 15 Jul 2019 17:20:24 -0400
Subject: [PATCH] onStartDrag: Always check target drawable exists

---
 src/containers/stage.jsx | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/containers/stage.jsx b/src/containers/stage.jsx
index 3a61f5b17..79a41db7e 100644
--- a/src/containers/stage.jsx
+++ b/src/containers/stage.jsx
@@ -343,11 +343,16 @@ class Stage extends React.Component {
     onStartDrag (x, y) {
         if (this.state.dragId) return;
 
-        // Because pick queries are expensive, only perform them for drawables that are currently draggable.
-        let draggableTargets = this.props.vm.runtime.targets;
+        // 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 => Number.isFinite(target.drawableID) && target.draggable
+                target => target.draggable
             );
         }
         if (draggableTargets.length === 0) return;
-- 
GitLab