diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-05 19:28:10 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-04-05 19:28:10 +0200 |
| commit | f8e0b0b448b8b68f65ee1c3eebdd4eb3e3382138 (patch) | |
| tree | ffc828e5fd67f8a429517c1fe01a4780c2ea694c /src/managers/AnimationManager.cpp | |
| parent | f5562941f70a448a2e292449296ff4c6ba26dc37 (diff) | |
fadein and prep for fadeout
Diffstat (limited to 'src/managers/AnimationManager.cpp')
| -rw-r--r-- | src/managers/AnimationManager.cpp | 27 |
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; |
