From a330ea9b98c600f83912b867bf7fb910e6ddaef8 Mon Sep 17 00:00:00 2001 From: Lucas 'Paperboy' Rose-Winters Date: Mon, 27 Oct 2025 16:10:08 +1100 Subject: [PATCH] fix(dashboard): disable text editing on widget re-renders in edit mode Ensure contenteditable and input fields remain disabled when widgets are re-rendered during edit mode (e.g., during auto-layout, cross-tab moves, or tab switches). This prevents text editing from interfering with drag operations. Previously, disableContentEditing() was only called when entering edit mode, so any widgets rendered afterward would have editable fields again. Now, renderWidgetContent() checks if in edit mode and disables editing on newly rendered widgets. --- src/systems/dashboard/dashboardManager.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/systems/dashboard/dashboardManager.js b/src/systems/dashboard/dashboardManager.js index abe1153..e37addd 100644 --- a/src/systems/dashboard/dashboardManager.js +++ b/src/systems/dashboard/dashboardManager.js @@ -726,6 +726,22 @@ export class DashboardManager { } else { console.warn(`[DashboardManager] No render function for ${widget.type}`); } + + // If in edit mode, disable content editing on this widget + if (this.editManager && this.editManager.isEditMode) { + const editableElements = element.querySelectorAll('[contenteditable="true"]'); + editableElements.forEach(el => { + el.dataset.wasEditable = 'true'; + el.contentEditable = 'false'; + }); + + // Also disable input fields + const inputElements = element.querySelectorAll('input, textarea'); + inputElements.forEach(el => { + el.dataset.wasEnabled = el.disabled ? 'false' : 'true'; + el.disabled = true; + }); + } } /**