summaryrefslogtreecommitdiff
path: root/src/desktop/Window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/desktop/Window.cpp')
-rw-r--r--src/desktop/Window.cpp20
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;