fix(ui): theme-aware modal backdrop + full-window lock overlay
Address two GUI-review points: 1. Light themes no longer get a dark modal backdrop: DrawFullWindowBlurBackdrop now tints toward the theme app background (WithAlpha(Background(), ...)) for both the opaque base and the frost, so a light theme gets a light frosted backdrop and a dark theme a dark one. Fixes all blur overlays, not just the lock screen. 2. The lock screen now blurs the WHOLE window (sidebar included), not just the content area: renderLockScreen opens a full-viewport borderless overlay window (##LockOverlay, same pattern as the modal overlays / portfolio, opened from within ##ContentArea) with an input blocker, instead of drawing in the content child. Removed the theme-independent dark scrim (contradicted point 1). Auth logic untouched. Needs GUI re-verify of all auth paths + that the whole screen (incl. sidebar) obscures on lock and unlock returns cleanly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -497,7 +497,9 @@ inline void DrawGlassPanel(ImDrawList* dl, const ImVec2& pMin,
|
||||
inline void DrawFullWindowBlurBackdrop(ImDrawList* dl, const ImVec2& pMin, const ImVec2& pMax,
|
||||
bool allowBlur = true)
|
||||
{
|
||||
dl->AddRectFilled(pMin, pMax, IM_COL32(9, 10, 16, 255)); // opaque base (shows through if the blur is faint)
|
||||
// Theme-aware tones: a light theme gets a light frosted backdrop, a dark theme a dark one — the
|
||||
// backdrop tints toward the app background rather than a hardcoded dark.
|
||||
dl->AddRectFilled(pMin, pMax, WithAlpha(Background(), 255)); // opaque base (fallback / faint-blur show-through)
|
||||
if (allowBlur && IsBackdropActive() && !dragonx::ui::effects::isLowSpecMode()
|
||||
&& effects::ImGuiAcrylic::IsEnabled() && effects::ImGuiAcrylic::IsAvailable()) {
|
||||
// Safe to use a strong custom radius here: while a full-window overlay is active every glass
|
||||
@@ -507,7 +509,7 @@ inline void DrawFullWindowBlurBackdrop(ImDrawList* dl, const ImVec2& pMin, const
|
||||
params.blurRadius = 64.0f; // strong full-window blur
|
||||
params.fallbackColor.w = 1.0f; // full-strength blur so the live content reads
|
||||
effects::ImGuiAcrylic::DrawAcrylicRect(dl, pMin, pMax, params, 0.0f);
|
||||
dl->AddRectFilled(pMin, pMax, IM_COL32(6, 8, 18, 70)); // slight dim so the card reads as foreground
|
||||
dl->AddRectFilled(pMin, pMax, WithAlpha(Background(), 70)); // subtle theme-tinted frost so the card reads as foreground
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user