From 4788140c2c4f4a4e9379b32e97effee988df4883 Mon Sep 17 00:00:00 2001 From: "Claude (Chronicler #78)" Date: Sat, 11 Apr 2026 10:38:32 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20Node=20clicks=20blocked=20after=20draggi?= =?UTF-8?q?ng=20=E2=80=94=20reset=20dragMoved=20on=20mouseup/touchend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dragMoved flag was only reset in wrap mousedown, which skips for node clicks. After any drag, dragMoved stayed true forever, blocking all showServer/showExternal calls. Fix: setTimeout reset on mouseup/touchend (10ms delay lets click fire first). Chronicler #78 | firefrost-services --- services/arbiter-3.0/src/views/admin/infrastructure/index.ejs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/arbiter-3.0/src/views/admin/infrastructure/index.ejs b/services/arbiter-3.0/src/views/admin/infrastructure/index.ejs index 0dbc941..beab4c4 100644 --- a/services/arbiter-3.0/src/views/admin/infrastructure/index.ejs +++ b/services/arbiter-3.0/src/views/admin/infrastructure/index.ejs @@ -879,6 +879,8 @@ document.addEventListener('DOMContentLoaded', () => { isDragging = false; wrap.classList.remove('dragging'); document.getElementById('topo-zoomable')?.classList.remove('dragging'); + // Reset dragMoved after a tick so the click event fires first + setTimeout(() => { dragMoved = false; }, 10); } }); @@ -938,6 +940,7 @@ document.addEventListener('DOMContentLoaded', () => { wrap.addEventListener('touchend', () => { isDragging = false; lastTouchDist = 0; + setTimeout(() => { dragMoved = false; }, 10); }); });