From 2355c8694ecef4f1e1aa6ea33513ac7ef7e8c01a Mon Sep 17 00:00:00 2001 From: dvdrw Date: Mon, 18 May 2026 19:46:25 +0200 Subject: [PATCH] ux: make rooms draggable in edit mode only after a tap --- assets/konva/app.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/assets/konva/app.js b/assets/konva/app.js index c82f245..03b4e57 100644 --- a/assets/konva/app.js +++ b/assets/konva/app.js @@ -110,7 +110,7 @@ function _buildRoomGroup(room) { id: `room-${room.id}`, x: room.x * PPM, y: room.y * PPM, - draggable: mode === 'edit', + draggable: false, }); // Floor area @@ -136,6 +136,8 @@ function _buildRoomGroup(room) { group.on('click tap', () => { if (mode === 'edit') { + roomsLayer.find('Group').forEach(g => g.draggable(false)); + group.draggable(true); _dimRoom = room; _dimGroup = group; _showDimensions(room, group.x(), group.y()); @@ -299,6 +301,7 @@ function _showDimensions(room, lx, ly) { function _clearDimensions() { _dimRoom = null; _dimGroup = null; + roomsLayer.find('Group').forEach(g => g.draggable(false)); dimensionsLayer.destroyChildren(); dimensionsLayer.batchDraw(); } @@ -598,7 +601,7 @@ window.companion = { setMode(newMode) { mode = newMode; - roomsLayer.find('Group').forEach(g => g.draggable(newMode === 'edit')); + roomsLayer.find('Group').forEach(g => g.draggable(false)); sensorsLayer.find('Group').forEach(g => g.draggable(newMode === 'sensorMove')); tagsLayer.visible(newMode === 'view'); particlesLayer.visible(newMode === 'view');