aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'src/helpers')
-rw-r--r--src/helpers/Workspace.cpp26
-rw-r--r--src/helpers/Workspace.hpp3
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