From 8cf850037e78703ee5a9b2e4f4a93e67ef5a7c74 Mon Sep 17 00:00:00 2001
From: Max <m.giller.dev@gmail.com>
Date: Fri, 12 Nov 2021 22:56:51 +0100
Subject: [PATCH] Fixed some ghost selection glitches

---
 editor/js/tools/deletetool.js | 10 +++++++++-
 editor/js/tools/selecttool.js | 13 +++++++++++++
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/editor/js/tools/deletetool.js b/editor/js/tools/deletetool.js
index 64a3cf4..5a8acf6 100644
--- a/editor/js/tools/deletetool.js
+++ b/editor/js/tools/deletetool.js
@@ -1,5 +1,5 @@
 import Tool from "./tool";
-import { graph } from "../editor";
+import { graph, state } from "../editor";
 import * as Graph from "../graph";
 
 export default class DeleteTool extends Tool {
@@ -9,6 +9,10 @@ export default class DeleteTool extends Tool {
 
     onNodeClick(node) {
         graph.deleteNode(node[Graph.NODE_ID]);
+        
+        if (state.selectedItem == node) {
+            state.setSelectedItem(undefined);
+        }
     }
 
     onLinkClick(link) {
@@ -16,5 +20,9 @@ export default class DeleteTool extends Tool {
             link[Graph.LINK_SOURCE][Graph.NODE_ID],
             link[Graph.LINK_TARGET][Graph.NODE_ID]
         );
+        
+        if (state.selectedItem == link) {
+            state.setSelectedItem(undefined);
+        }
     }
 }
diff --git a/editor/js/tools/selecttool.js b/editor/js/tools/selecttool.js
index 4af6892..0440e57 100644
--- a/editor/js/tools/selecttool.js
+++ b/editor/js/tools/selecttool.js
@@ -28,4 +28,17 @@ export default class SelectTool extends Tool {
             graph.changeDetails(value);
         }
     }
+
+    onToolActivate() {
+        if (state === undefined) {
+            return;
+        }
+
+        var newSelection = state.selectedItem;
+        if (newSelection === undefined) {
+            newSelection = {};
+        }
+
+        this.menu.value(SelectMenu.SELECTION_KEY, newSelection);
+    }
 }
-- 
GitLab