diff options
| author | SoSeDiK <mrsosedik@gmail.com> | 2024-04-09 18:22:44 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-09 16:22:44 +0100 |
| commit | 1343aa865d04d80313b0e674c28ecfdbeb90e876 (patch) | |
| tree | 0ea2dce9b2552fbddb1896458f78aa6f07c6436d /src/desktop/Window.cpp | |
| parent | f2addfb404ccf1cacd9481e0c7612cbf1dc0c8b4 (diff) | |
config: Don't override fullscreen opacity if only two opacities are provided (#5512)
Diffstat (limited to 'src/desktop/Window.cpp')
| -rw-r--r-- | src/desktop/Window.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/desktop/Window.cpp b/src/desktop/Window.cpp index 7c3ceb6e..28c85add 100644 --- a/src/desktop/Window.cpp +++ b/src/desktop/Window.cpp @@ -603,19 +603,16 @@ void CWindow::applyDynamicRule(const SWindowRule& r) { continue; if (r == "override") { - if (opacityIDX == 1) { - m_sSpecialRenderData.alphaOverride = true; - m_sSpecialRenderData.alphaInactiveOverride = true; - m_sSpecialRenderData.alphaFullscreenOverride = true; - } else if (opacityIDX == 2) + if (opacityIDX == 1) + m_sSpecialRenderData.alphaOverride = true; + else if (opacityIDX == 2) m_sSpecialRenderData.alphaInactiveOverride = true; else if (opacityIDX == 3) m_sSpecialRenderData.alphaFullscreenOverride = true; } else { if (opacityIDX == 0) { - m_sSpecialRenderData.alpha = std::stof(r); - m_sSpecialRenderData.alphaInactive = std::stof(r); - m_sSpecialRenderData.alphaFullscreen = std::stof(r); + m_sSpecialRenderData.alpha = std::stof(r); + m_sSpecialRenderData.alphaOverride = false; } else if (opacityIDX == 1) { m_sSpecialRenderData.alphaInactive = std::stof(r); m_sSpecialRenderData.alphaInactiveOverride = false; @@ -629,6 +626,13 @@ void CWindow::applyDynamicRule(const SWindowRule& r) { opacityIDX++; } } + + if (opacityIDX == 1) { + m_sSpecialRenderData.alphaInactiveOverride = m_sSpecialRenderData.alphaOverride; + m_sSpecialRenderData.alphaInactive = m_sSpecialRenderData.alpha; + m_sSpecialRenderData.alphaFullscreenOverride = m_sSpecialRenderData.alphaOverride; + m_sSpecialRenderData.alphaFullscreen = m_sSpecialRenderData.alpha; + } } catch (std::exception& e) { Debug::log(ERR, "Opacity rule \"{}\" failed with: {}", r.szRule, e.what()); } } else if (r.szRule == "noanim") { m_sAdditionalConfigData.forceNoAnims = true; |
