From 9b8ef9206d9687fd2280cff5c0e6d5fe6abb395a Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Thu, 4 Apr 2024 22:41:09 +0700 Subject: [PATCH] layers: separate anim configs for open/close (#5421) --- src/config/ConfigManager.cpp | 9 +++++++++ src/helpers/WLClasses.cpp | 15 ++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 87bb5bbd..edbfa2b3 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -646,6 +646,10 @@ void CConfigManager::setDefaultAnimationVars() { INITANIMCFG("windowsOut"); INITANIMCFG("windowsMove"); + // layers + INITANIMCFG("layersIn"); + INITANIMCFG("layersOut"); + // fade INITANIMCFG("fadeIn"); INITANIMCFG("fadeOut"); @@ -669,6 +673,9 @@ void CConfigManager::setDefaultAnimationVars() { CREATEANIMCFG("borderangle", "global"); CREATEANIMCFG("workspaces", "global"); + CREATEANIMCFG("layersIn", "layers"); + CREATEANIMCFG("layersOut", "layers"); + CREATEANIMCFG("windowsIn", "windows"); CREATEANIMCFG("windowsOut", "windows"); CREATEANIMCFG("windowsMove", "windows"); @@ -679,6 +686,8 @@ void CConfigManager::setDefaultAnimationVars() { CREATEANIMCFG("fadeShadow", "fade"); CREATEANIMCFG("fadeDim", "fade"); CREATEANIMCFG("fadeLayers", "fade"); + CREATEANIMCFG("fadeLayersIn", "fadeLayers"); + CREATEANIMCFG("fadeLayersOut", "fadeLayers"); CREATEANIMCFG("specialWorkspace", "workspaces"); } diff --git a/src/helpers/WLClasses.cpp b/src/helpers/WLClasses.cpp index 084a719d..6135098a 100644 --- a/src/helpers/WLClasses.cpp +++ b/src/helpers/WLClasses.cpp @@ -3,9 +3,9 @@ #include "../Compositor.hpp" SLayerSurface::SLayerSurface() { - alpha.create(g_pConfigManager->getAnimationPropertyConfig("fadeLayers"), this, AVARDAMAGE_ENTIRE); - realPosition.create(g_pConfigManager->getAnimationPropertyConfig("layers"), this, AVARDAMAGE_ENTIRE); - realSize.create(g_pConfigManager->getAnimationPropertyConfig("layers"), this, AVARDAMAGE_ENTIRE); + alpha.create(g_pConfigManager->getAnimationPropertyConfig("fadeLayersIn"), this, AVARDAMAGE_ENTIRE); + realPosition.create(g_pConfigManager->getAnimationPropertyConfig("layersIn"), this, AVARDAMAGE_ENTIRE); + realSize.create(g_pConfigManager->getAnimationPropertyConfig("layersIn"), this, AVARDAMAGE_ENTIRE); alpha.registerVar(); realPosition.registerVar(); realSize.registerVar(); @@ -61,6 +61,15 @@ void SLayerSurface::applyRules() { void SLayerSurface::startAnimation(bool in, bool instant) { const auto ANIMSTYLE = animationStyle.value_or(realPosition.m_pConfig->pValues->internalStyle); + if (in) { + realPosition.m_pConfig = g_pConfigManager->getAnimationPropertyConfig("layersIn"); + realSize.m_pConfig = g_pConfigManager->getAnimationPropertyConfig("layersIn"); + alpha.m_pConfig = g_pConfigManager->getAnimationPropertyConfig("fadeLayersIn"); + } else { + realPosition.m_pConfig = g_pConfigManager->getAnimationPropertyConfig("layersOut"); + realSize.m_pConfig = g_pConfigManager->getAnimationPropertyConfig("layersOut"); + alpha.m_pConfig = g_pConfigManager->getAnimationPropertyConfig("fadeLayersOut"); + } if (ANIMSTYLE.starts_with("slide")) { // get closest edge