diff --git a/server/2015Remote/WebPage.h b/server/2015Remote/WebPage.h index c655be3..ded4f56 100644 --- a/server/2015Remote/WebPage.h +++ b/server/2015Remote/WebPage.h @@ -336,6 +336,9 @@ inline std::string GetWebPageHTML() { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; opacity: 0.8; } + .device-card .active-window.busy { + color: #e94560; opacity: 1; font-weight: 500; + } .device-card .meta-row { display: flex; gap: 12px; margin-top: 6px; font-size: 12px; color: #666; } .device-card .meta-item { display: flex; align-items: center; gap: 4px; } .device-card .meta-item.rtt { font-weight: 500; } @@ -854,6 +857,7 @@ inline std::string GetWebPageHTML() { +
@@ -1221,6 +1225,13 @@ inline std::string GetWebPageHTML() { return 'rtt-poor'; // Red: > 300ms } + function isWindowBusy(activeWindow) { + if (!activeWindow || activeWindow.trim() === '') return false; + const lower = activeWindow.toLowerCase(); + if (lower.includes('locked') || lower.includes('inactive')) return false; + return true; + } + function updateDeviceInfo(deviceId, rtt, activeWindow) { // Update device in array const device = devices.find(d => d.id === deviceId || d.id === String(deviceId)); @@ -1258,6 +1269,7 @@ inline std::string GetWebPageHTML() { } winEl.textContent = activeWindow; winEl.title = activeWindow; + winEl.className = 'active-window' + (isWindowBusy(activeWindow) ? ' busy' : ''); } else if (winEl) { winEl.remove(); } @@ -1303,7 +1315,7 @@ inline std::string GetWebPageHTML() { '' + '' + '' + - (activeWin ? '