summaryrefslogtreecommitdiff
path: root/src/managers/AnimationManager.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-05 19:28:10 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-05 19:28:10 +0200
commitf8e0b0b448b8b68f65ee1c3eebdd4eb3e3382138 (patch)
treeffc828e5fd67f8a429517c1fe01a4780c2ea694c /src/managers/AnimationManager.cpp
parentf5562941f70a448a2e292449296ff4c6ba26dc37 (diff)
fadein and prep for fadeout
Diffstat (limited to 'src/managers/AnimationManager.cpp')
-rw-r--r--src/managers/AnimationManager.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/managers/AnimationManager.cpp b/src/managers/AnimationManager.cpp
index c165b843..49ed7f44 100644
--- a/src/managers/AnimationManager.cpp
+++ b/src/managers/AnimationManager.cpp
@@ -10,18 +10,43 @@ void CAnimationManager::tick() {
const bool WINDOWSENABLED = g_pConfigManager->getInt("animations:windows") && !animationsDisabled;
const bool BORDERSENABLED = g_pConfigManager->getInt("animations:borders") && !animationsDisabled;
- // const bool FADEENABLED = g_pConfigManager->getInt("animations:fadein") && !animationsDisabled;
+ const bool FADEENABLED = g_pConfigManager->getInt("animations:fadein") && !animationsDisabled;
const float ANIMSPEED = g_pConfigManager->getFloat("animations:speed");
// Process speeds
const float WINDOWSPEED = g_pConfigManager->getFloat("animations:windows_speed") == 0 ? ANIMSPEED : g_pConfigManager->getFloat("animations:windows_speed");
const float BORDERSPEED = g_pConfigManager->getFloat("animations:borders_speed") == 0 ? ANIMSPEED : g_pConfigManager->getFloat("animations:borders_speed");
+ const float FADESPEED = g_pConfigManager->getFloat("animations:fadein_speed") == 0 ? ANIMSPEED : g_pConfigManager->getFloat("animations:fadein_speed");
const auto BORDERACTIVECOL = CColor(g_pConfigManager->getInt("general:col.active_border"));
const auto BORDERINACTIVECOL = CColor(g_pConfigManager->getInt("general:col.inactive_border"));
for (auto& w : g_pCompositor->m_lWindows) {
+ // process fadeinout
+ if (FADEENABLED) {
+ const auto GOALALPHA = w.m_bIsMapped ? 255.f : 0.f;
+ w.m_bFadingOut = false;
+
+ if (!deltazero(w.m_fAlpha, GOALALPHA)) {
+ if (deltaSmallToFlip(w.m_fAlpha, GOALALPHA)) {
+ w.m_fAlpha = GOALALPHA;
+ } else {
+ if (w.m_fAlpha > GOALALPHA)
+ w.m_bFadingOut = true;
+ w.m_fAlpha = parabolic(w.m_fAlpha, GOALALPHA, FADESPEED);
+ }
+ }
+
+ } else {
+ if (w.m_bIsMapped)
+ w.m_fAlpha = 255.f;
+ else {
+ w.m_fAlpha = 0.f;
+ w.m_bFadingOut = false;
+ }
+ }
+
// process the borders
const auto& COLOR = g_pCompositor->isWindowActive(&w) ? BORDERACTIVECOL : BORDERINACTIVECOL;