diff options
Diffstat (limited to 'src/helpers')
-rw-r--r-- | src/helpers/Workspace.cpp | 26 | ||||
-rw-r--r-- | src/helpers/Workspace.hpp | 3 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/helpers/Workspace.cpp b/src/helpers/Workspace.cpp index e4065907..80bf139c 100644 --- a/src/helpers/Workspace.cpp +++ b/src/helpers/Workspace.cpp @@ -23,6 +23,8 @@ CWorkspace::CWorkspace(int monitorID) { m_vRenderOffset.m_pWorkspace = this; m_vRenderOffset.create(AVARTYPE_VECTOR, &g_pConfigManager->getConfigValuePtr("animations:workspaces_speed")->floatValue, &g_pConfigManager->getConfigValuePtr("animations:workspaces")->intValue, &g_pConfigManager->getConfigValuePtr("animations:workspaces_curve")->strValue, nullptr, AVARDAMAGE_ENTIRE); + m_fAlpha.create(AVARTYPE_FLOAT, &g_pConfigManager->getConfigValuePtr("animations:workspaces_speed")->floatValue, &g_pConfigManager->getConfigValuePtr("animations:workspaces")->intValue, &g_pConfigManager->getConfigValuePtr("animations:workspaces_curve")->strValue, nullptr, AVARDAMAGE_ENTIRE); + m_fAlpha.setValueAndWarp(255.f); } CWorkspace::~CWorkspace() { @@ -33,4 +35,28 @@ CWorkspace::~CWorkspace() { wlr_ext_workspace_handle_v1_destroy(m_pWlrHandle); m_pWlrHandle = nullptr; } +} + +void CWorkspace::startAnim(bool in, bool left) { + const auto ANIMSTYLE = g_pConfigManager->getString("animations:workspaces_style"); + + if (ANIMSTYLE == "fade") { + if (in) { + m_fAlpha.setValueAndWarp(0.f); + m_fAlpha = 255.f; + } else { + m_fAlpha.setValueAndWarp(255.f); + m_fAlpha = 0.f; + } + } else { + // fallback is slide + const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); + + if (in) { + m_vRenderOffset.setValueAndWarp(Vector2D(left ? PMONITOR->vecSize.x : -PMONITOR->vecSize.x, 0)); + m_vRenderOffset = Vector2D(0, 0); + } else { + m_vRenderOffset = Vector2D(left ? -PMONITOR->vecSize.x : PMONITOR->vecSize.x, 0); + } + } }
\ No newline at end of file diff --git a/src/helpers/Workspace.hpp b/src/helpers/Workspace.hpp index 3a9abf72..fbf32f6f 100644 --- a/src/helpers/Workspace.hpp +++ b/src/helpers/Workspace.hpp @@ -21,4 +21,7 @@ public: // for animations CAnimatedVariable m_vRenderOffset; + CAnimatedVariable m_fAlpha; + + void startAnim(bool in, bool left); };
\ No newline at end of file |