From 3f30fa3eec9c2e2acf9a984ccefb9529a25e688a Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Tue, 7 Jul 2026 05:50:37 -0400 Subject: feat: add insert/remove room to context menu in admin web GUI to 'push' or 'pull' map rooms --- internal/admin/static/editor.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'internal/admin/static/editor.js') diff --git a/internal/admin/static/editor.js b/internal/admin/static/editor.js index 50d86f1..1bd6872 100644 --- a/internal/admin/static/editor.js +++ b/internal/admin/static/editor.js @@ -278,12 +278,21 @@ function showDirContextMenu(e, dir) { overlay.className = 'cm-overlay'; overlay.id = '_ctxMenuOverlay'; overlay.onclick = function() { closeContextMenu(); }; + overlay.addEventListener('contextmenu', function(ev) { + ev.preventDefault(); + ev.stopPropagation(); + var cx = ev.clientX, cy = ev.clientY; + closeContextMenu(); + var el = document.elementFromPoint(cx, cy); + if (el) el.dispatchEvent(new MouseEvent('contextmenu', {bubbles:true, cancelable:true, clientX:cx, clientY:cy, button:2})); + }); var menu = document.createElement('div'); menu.className = 'cm-menu'; menu.id = '_ctxMenu'; menu.style.left = e.clientX + 'px'; menu.style.top = e.clientY + 'px'; + menu.oncontextmenu = function(ev) { ev.preventDefault(); }; function addBtn(label, cls, handler) { var btn = document.createElement('button'); @@ -324,12 +333,21 @@ function showItemContextMenu(e, id) { overlay.className = 'cm-overlay'; overlay.id = '_ctxMenuOverlay'; overlay.onclick = function() { closeContextMenu(); }; + overlay.addEventListener('contextmenu', function(ev) { + ev.preventDefault(); + ev.stopPropagation(); + var cx = ev.clientX, cy = ev.clientY; + closeContextMenu(); + var el = document.elementFromPoint(cx, cy); + if (el) el.dispatchEvent(new MouseEvent('contextmenu', {bubbles:true, cancelable:true, clientX:cx, clientY:cy, button:2})); + }); var menu = document.createElement('div'); menu.className = 'cm-menu'; menu.id = '_ctxMenu'; menu.style.left = e.clientX + 'px'; menu.style.top = e.clientY + 'px'; + menu.oncontextmenu = function(ev) { ev.preventDefault(); }; function addBtn(label, cls, handler) { var btn = document.createElement('button'); -- cgit v1.2.3