diff --git a/src/ui/effects/acrylic.cpp b/src/ui/effects/acrylic.cpp index 07ac359..aed0507 100644 --- a/src/ui/effects/acrylic.cpp +++ b/src/ui/effects/acrylic.cpp @@ -586,12 +586,14 @@ void AcrylicMaterial::drawRect(ImDrawList* drawList, const ImVec2& pMin, const I float u1 = localX1 / viewportWidth_; float v1 = 1.0f - localY1 / viewportHeight_; // V at bottom-right (low) - // Draw the blurred background. Scale by both the glass preset - // opacity (fallbackColor.w) AND the user's UI opacity slider so - // that lowering card opacity lets the sharp background through. + // Draw the blurred background at (near) full strength so the panel is actually FROSTED — the + // blurred capture replaces the sharp background in the card. UI opacity is applied only to the + // tint overlay (in DrawGlassPanel), NOT here: scaling the blur by uiOpacity used to let the + // SHARP background bleed straight through at low opacity, which made the acrylic slider look + // like a no-op. A small floor keeps it frosted even for low-alpha presets. ImTextureID blurTex = getBlurredTexture(); uint8_t glassAlpha = static_cast( - std::min(255.0f, std::max(0.0f, params.fallbackColor.w * settings_.uiOpacity * 255.0f))); + std::min(255.0f, std::max(0.0f, std::max(params.fallbackColor.w, 0.90f) * 255.0f))); if (blurTex) { drawList->AddImageRounded( @@ -1562,11 +1564,12 @@ void AcrylicMaterial::drawRect(ImDrawList* drawList, const ImVec2& pMin, const I (void*)blurTex, u0, v0, u1, v1); } - // Draw the blurred background. Scale by both the glass preset - // opacity (fallbackColor.w) AND the user's UI opacity slider so - // that lowering card opacity lets the sharp background through. + // Draw the blurred background at (near) full strength so the panel is actually FROSTED — UI + // opacity is applied only to the tint overlay, NOT here (scaling the blur by uiOpacity let the + // SHARP background bleed through at low opacity, making the acrylic slider a no-op). Mirrors the + // GL drawRect fix above. uint8_t glassAlpha = (uint8_t)std::min(255.f, - std::max(0.f, params.fallbackColor.w * settings_.uiOpacity * 255.f)); + std::max(0.f, std::max(params.fallbackColor.w, 0.90f) * 255.f)); if (blurTex) { drawList->AddImageRounded(