diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte
index fb14b56..b2541f4 100644
--- a/frontend/src/App.svelte
+++ b/frontend/src/App.svelte
@@ -39,7 +39,8 @@
{ if (e.detail.type != "label") (location.hash = `#task/${e.detail.id}`)}}/>
+ on:selectTask={(e) => { if (e.detail.type != "label") (location.hash = `#task/${e.detail.id}`)}}
+ on:closeTask={() => {location.hash = '#'}} />
{/if}
diff --git a/frontend/src/Graph.svelte b/frontend/src/Graph.svelte
index 6d535b6..448a5e8 100644
--- a/frontend/src/Graph.svelte
+++ b/frontend/src/Graph.svelte
@@ -81,6 +81,10 @@ import TaskDetailEditor from "./TaskDetailEditor.svelte";
d3.select(container).call(zoomer);
}
+ function containerClickHandler(e: MouseEvent) {
+ eventDispatcher("closeTask");
+ }
+
function groupSelectionHandler(e: MouseEvent) {
// not enabled?
if (!selectionToolEnabled) return;
@@ -271,6 +275,7 @@ import TaskDetailEditor from "./TaskDetailEditor.svelte";
bind:this={container}
bind:clientHeight
bind:clientWidth
+ on:click={containerClickHandler}
on:mousedown={groupSelectionHandler}
on:contextmenu={(e) => {
if (selectionToolEnabled) {
diff --git a/frontend/src/GraphNode.svelte b/frontend/src/GraphNode.svelte
index 58fc0bf..62056be 100644
--- a/frontend/src/GraphNode.svelte
+++ b/frontend/src/GraphNode.svelte
@@ -25,6 +25,7 @@
}
function click(e: MouseEvent) {
+ e.stopPropagation();
eventDispatcher("click", e);
}