From f80a0d72b3f34ce5575b836987777176bc245f70 Mon Sep 17 00:00:00 2001 From: jelveh Date: Sun, 30 Aug 2026 21:45:43 -0700 Subject: [PATCH] fix: dashboard 'Add Existing Account' dialog buried on phones/tablets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On device-phone/device-tablet, style.css pins every .window to z-index 9999999 !important — including the fullpage dashboard window. The Add Existing Account login dialog opens with backdrop: true, and the .window-backdrop wrapper is not a .window, so it kept its small inline z-index and rendered entirely behind the dashboard. Pass stay_on_top: true like every other backdropped dashboard dialog, and make the Forgot-password child dialog inherit the flag so it does not open buried under the now stay-on-top login window's backdrop. Verified with Playwright on iPhone 13 emulation and a desktop viewport: login and recover-password dialogs stack above the dashboard in both. --- src/gui/src/UI/Dashboard/UIDashboard.js | 6 ++++++ src/gui/src/UI/UIWindowLogin.js | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/gui/src/UI/Dashboard/UIDashboard.js b/src/gui/src/UI/Dashboard/UIDashboard.js index b1ac6c6c5..e6b5b3a9d 100644 --- a/src/gui/src/UI/Dashboard/UIDashboard.js +++ b/src/gui/src/UI/Dashboard/UIDashboard.js @@ -746,6 +746,12 @@ async function UIDashboard (options) { backdrop: true, close_on_backdrop_click: true, parent_center: true, + // Phones/tablets pin every .window to one z-index + // (style.css), which puts the fullpage dashboard + // above this dialog's backdrop wrapper; stay_on_top + // lifts the dialog into the 99999999+ band like + // every other backdropped dashboard dialog. + stay_on_top: true, }, }); }, diff --git a/src/gui/src/UI/UIWindowLogin.js b/src/gui/src/UI/UIWindowLogin.js index 281eff5a0..98f8d25dd 100644 --- a/src/gui/src/UI/UIWindowLogin.js +++ b/src/gui/src/UI/UIWindowLogin.js @@ -389,7 +389,10 @@ async function UIWindowLogin (options) { UIWindowRecoverPassword({ window_options: { backdrop: true, - stay_on_top: isMobile.phone, + // A stay-on-top login window (dashboard mode) sits in the + // 99999999+ band; this dialog must join it there or it + // opens buried under the login window's backdrop. + stay_on_top: isMobile.phone || !!options.window_options?.stay_on_top, close_on_backdrop_click: false, }, });