From fb25277db4b8637209241e7f6602ae12a4ba1e4c Mon Sep 17 00:00:00 2001 From: Lucas 'Paperboy' Rose-Winters Date: Mon, 27 Oct 2025 22:25:03 +1100 Subject: [PATCH] fix(dashboard): replace all hardcoded emoji icons with Font Awesome MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix inconsistent tab icon rendering by replacing hardcoded emoji icons throughout the codebase with Font Awesome equivalents: - distributeWidgetsByCategory(): Replace emojis in auto-layout tab creation - Status tab: 📊 → fa-solid fa-user - Scene tab: 🌍 → fa-solid fa-map - Social tab: 👥 → fa-solid fa-users - Inventory tab: 🎒 → fa-solid fa-bag-shopping - applyDashboardConfig(): Update fallback icon from 📄 → fa-solid fa-file These hardcoded emojis bypassed the migration system, causing icons to disappear after operations like auto-arrange, reset layout, or page refresh. Resolves inconsistent icon rendering across all dashboard operations. --- src/systems/dashboard/dashboardManager.js | 10 +++++----- style.css | 9 +++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/systems/dashboard/dashboardManager.js b/src/systems/dashboard/dashboardManager.js index 9ebe72d..72b5441 100644 --- a/src/systems/dashboard/dashboardManager.js +++ b/src/systems/dashboard/dashboardManager.js @@ -840,7 +840,7 @@ export class DashboardManager { this.dashboard.tabs.push({ id: 'tab-status', name: 'Status', - icon: '📊', + icon: 'fa-solid fa-user', order: 0, widgets: groups.user }); @@ -854,7 +854,7 @@ export class DashboardManager { this.dashboard.tabs.push({ id: 'tab-scene', name: 'Scene', - icon: '🌍', + icon: 'fa-solid fa-map', order: 1, widgets: groups.scene }); @@ -868,7 +868,7 @@ export class DashboardManager { this.dashboard.tabs.push({ id: 'tab-social', name: 'Social', - icon: '👥', + icon: 'fa-solid fa-users', order: 2, widgets: groups.social }); @@ -882,7 +882,7 @@ export class DashboardManager { this.dashboard.tabs.push({ id: 'tab-inventory', name: 'Inventory', - icon: '🎒', + icon: 'fa-solid fa-bag-shopping', order: 3, widgets: groups.inventory }); @@ -1267,7 +1267,7 @@ export class DashboardManager { this.dashboard.tabs.push({ id: tabConfig.id, name: tabConfig.name, - icon: tabConfig.icon || '📄', + icon: tabConfig.icon || 'fa-solid fa-file', order: tabConfig.order || 0, widgets: tabConfig.widgets || [] }); diff --git a/style.css b/style.css index 8a6baaf..fc1d42c 100644 --- a/style.css +++ b/style.css @@ -1708,6 +1708,15 @@ body:has(.rpg-panel.rpg-position-left) #sheld { pointer-events: auto; } +/* Prevent text selection in edit mode (especially important for mobile) */ +.edit-mode .rpg-widget-content { + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -webkit-touch-callout: none; /* Prevent iOS callout menu */ +} + /* Hide resize handles when widgets are locked */ .widgets-locked .resize-handles { opacity: 0 !important;