summaryrefslogtreecommitdiff
path: root/src/desktop/Window.cpp
diff options
context:
space:
mode:
authorSoSeDiK <mrsosedik@gmail.com>2024-04-09 18:22:44 +0300
committerGitHub <noreply@github.com>2024-04-09 16:22:44 +0100
commit1343aa865d04d80313b0e674c28ecfdbeb90e876 (patch)
tree0ea2dce9b2552fbddb1896458f78aa6f07c6436d /src/desktop/Window.cpp
parentf2addfb404ccf1cacd9481e0c7612cbf1dc0c8b4 (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.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;