diff --git a/editor/js/editor.js b/editor/js/editor.js
index eebae44df5d7a4a3539aff160f406e2b0712fc05..ae1f5c47a20cc59375deab9509e79974ca8b0944 100644
--- a/editor/js/editor.js
+++ b/editor/js/editor.js
@@ -3,7 +3,7 @@ import * as Graph from "./graph";
 import { loadGraphJson } from "../../datasets/datasets";
 import ForceGraph from "force-graph";
 import * as Interactions from "./interactions";
-import { DRAG_THRESHOLD_2D, setSpace, SPACE } from "../../config";
+import { setSpace, SPACE } from "../../config";
 
 export var state = undefined;
 export var graph = undefined;
@@ -57,7 +57,7 @@ function load() {
         .linkColor((link) => state.linkColor(link))
         .nodeColor((node) => state.nodeColor(node))
         .onNodeClick((node) => state.onNodeClick(node))
-        .onNodeDragEnd((node, translate) => onNodeDragEnd(node, translate))
+        .onNodeDragEnd((node, translate) => state.onNodeDragEnd(node, translate))
         .autoPauseRedraw(false) // keep redrawing after engine has stopped
         .linkWidth((link) => state.linkWidth(link))
         .linkDirectionalParticles(state.linkDirectionalParticles())
@@ -81,12 +81,3 @@ function load() {
         graphObj.graphData(data);
     });
 }
-
-function onNodeDragEnd(node, translate) {
-    if (
-        Math.sqrt(Math.pow(translate.x, 2) + Math.pow(translate.y, 2)) <
-        DRAG_THRESHOLD_2D
-    ) {
-        state.onNodeClick(node);
-    }
-}
diff --git a/editor/js/state.js b/editor/js/state.js
index 1672b394d06a8a6b6c04fdc8a8160658b3a95719..b2f158c1611b85a8c3e067ef62688eb6e71d13cc 100644
--- a/editor/js/state.js
+++ b/editor/js/state.js
@@ -10,6 +10,7 @@ import SaveTool from "./tools/savetool";
 import { graph } from "./editor";
 import Toolbar from "./toolbar";
 import * as Graph from "./graph";
+import { DRAG_THRESHOLD_2D } from "../../config";
 
 export const TOOLS = {
     undo: new UndoTool("undo"),
@@ -86,6 +87,18 @@ export class State extends Tool {
         this.tool.onNodeClick(node);
     }
 
+    onNodeDragEnd(node, translate) {
+        // Handle as click event, if drag distance under a certain threshold
+        var distanceDragged = Math.sqrt(Math.pow(translate.x, 2) + Math.pow(translate.y, 2));
+        if (distanceDragged < DRAG_THRESHOLD_2D) {
+            this.onNodeClick(node);
+            return;
+            
+        } else {
+            this.tool.onNodeDragEnd(node, translate);
+        }
+    }
+
     onLinkClick(link) {
         this.tool.onLinkClick(link);
     }
diff --git a/editor/js/tools/tool.js b/editor/js/tools/tool.js
index 31ee19ac3b1e2ae5d733b326e5d8cdda97943ed8..c19314bbf233d4250abd9e214f163c176d206d21 100644
--- a/editor/js/tools/tool.js
+++ b/editor/js/tools/tool.js
@@ -64,6 +64,12 @@ export default class Tool {
         }
     }
 
+    onNodeDragEnd(node, translate) {
+        if (this.warnings) {
+            console.warn('Method "onNodeDragEnd" not implemented.');
+        }
+    }
+
     onLinkClick(link) {
         if (this.warnings) {
             console.warn('Method "onLinkClick" not implemented.');