diff options
author | Vaxry <[email protected]> | 2024-08-24 20:54:05 +0200 |
---|---|---|
committer | Vaxry <[email protected]> | 2024-08-24 20:54:05 +0200 |
commit | d3e26652d627a7bf3e562de415568260d9865a2f (patch) | |
tree | 4edc2e615f67410adc77a3f48bebad92b104e665 /src/desktop/Workspace.cpp | |
parent | 276652b44e43a441381f51644f21ed901dab6c8f (diff) | |
download | Hyprland-d3e26652d627a7bf3e562de415568260d9865a2f.tar.gz Hyprland-d3e26652d627a7bf3e562de415568260d9865a2f.zip |
better
Diffstat (limited to 'src/desktop/Workspace.cpp')
-rw-r--r-- | src/desktop/Workspace.cpp | 85 |
1 files changed, 42 insertions, 43 deletions
diff --git a/src/desktop/Workspace.cpp b/src/desktop/Workspace.cpp index 735da9f7..5c1fedf1 100644 --- a/src/desktop/Workspace.cpp +++ b/src/desktop/Workspace.cpp @@ -114,58 +114,57 @@ void CWorkspace::startAnim(bool in, bool left, bool instant) { m_fAlpha = in ? 1.F : 0.F; // handle animation styles for the movement one - if (ANIMSTYLE.starts_with("slide") && ANIMSTYLE.contains("%")) { - const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); - float movePerc = 0.F; + if (m_vRenderOffset.m_pConfig->pValues->internalEnabled) { + if (ANIMSTYLE.starts_with("slide") && ANIMSTYLE.contains("%")) { + const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); + float movePerc = 0.F; - try { - auto percstr = ANIMSTYLE.substr(ANIMSTYLE.find_last_of(' ') + 1); - movePerc = std::stoi(percstr.substr(0, percstr.length() - 1)); - } catch (std::exception& e) { Debug::log(ERR, "Error in startAnim: invalid percentage"); } + try { + auto percstr = ANIMSTYLE.substr(ANIMSTYLE.find_last_of(' ') + 1); + movePerc = std::stoi(percstr.substr(0, percstr.length() - 1)); + } catch (std::exception& e) { Debug::log(ERR, "Error in startAnim: invalid percentage"); } - m_vRenderOffset.setValueAndWarp(Vector2D(0, 0)); - m_fScaleClients.setValueAndWarp(1.F); - - if (ANIMSTYLE.starts_with("slidevert")) { - if (in) { - m_vRenderOffset.setValueAndWarp(Vector2D(0.0, (left ? PMONITOR->vecSize.y : -PMONITOR->vecSize.y) * (movePerc / 100.f))); - m_vRenderOffset = Vector2D(0, 0); - } else - m_vRenderOffset = Vector2D(0.0, (left ? -PMONITOR->vecSize.y : PMONITOR->vecSize.y) * (movePerc / 100.f)); + m_vRenderOffset.setValueAndWarp(Vector2D(0, 0)); + m_fScaleClients.setValueAndWarp(1.F); - } else { - if (in) { - m_vRenderOffset.setValueAndWarp(Vector2D((left ? PMONITOR->vecSize.x : -PMONITOR->vecSize.x) * (movePerc / 100.f), 0.0)); - m_vRenderOffset = Vector2D(0, 0); - } else - m_vRenderOffset = Vector2D((left ? -PMONITOR->vecSize.x : PMONITOR->vecSize.x) * (movePerc / 100.f), 0.0); - } - } else if (ANIMSTYLE.starts_with("popin")) { - m_vRenderOffset.setValueAndWarp(Vector2D(0, 0)); + if (ANIMSTYLE.starts_with("slidevert")) { + if (in) { + m_vRenderOffset.setValueAndWarp(Vector2D(0.0, (left ? PMONITOR->vecSize.y : -PMONITOR->vecSize.y) * (movePerc / 100.f))); + m_vRenderOffset = Vector2D(0, 0); + } else + m_vRenderOffset = Vector2D(0.0, (left ? -PMONITOR->vecSize.y : PMONITOR->vecSize.y) * (movePerc / 100.f)); + + } else { + if (in) { + m_vRenderOffset.setValueAndWarp(Vector2D((left ? PMONITOR->vecSize.x : -PMONITOR->vecSize.x) * (movePerc / 100.f), 0.0)); + m_vRenderOffset = Vector2D(0, 0); + } else + m_vRenderOffset = Vector2D((left ? -PMONITOR->vecSize.x : PMONITOR->vecSize.x) * (movePerc / 100.f), 0.0); + } + } else if (ANIMSTYLE.starts_with("popin")) { + m_vRenderOffset.setValueAndWarp(Vector2D(0, 0)); - float startPerc = 0.F; + float startPerc = 0.F; - try { - auto percstr = ANIMSTYLE.substr(ANIMSTYLE.find_last_of(' ') + 1); - startPerc = std::stoi(percstr.substr(0, percstr.length() - 1)); - } catch (std::exception& e) { Debug::log(ERR, "Error in startAnim: invalid percentage"); } + try { + auto percstr = ANIMSTYLE.substr(ANIMSTYLE.find_last_of(' ') + 1); + startPerc = std::stoi(percstr.substr(0, percstr.length() - 1)); + } catch (std::exception& e) { Debug::log(ERR, "Error in startAnim: invalid percentage"); } - if (in) { - m_fScaleClients.setValueAndWarp(startPerc / 100.F); - m_fScaleClients = 1.F; + if (in) { + m_fScaleClients.setValueAndWarp(startPerc / 100.F); + m_fScaleClients = 1.F; + } else { + m_fScaleClients.setValueAndWarp(1.F); + m_fScaleClients = startPerc / 100.F; + } } else { - m_fScaleClients.setValueAndWarp(1.F); - m_fScaleClients = startPerc / 100.F; - } - } else { - // fallback is slide - const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); - const auto XDISTANCE = PMONITOR->vecSize.x + *PWORKSPACEGAP; + // fallback is slide + const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID); + const auto XDISTANCE = PMONITOR->vecSize.x + *PWORKSPACEGAP; - m_fScaleClients.setValueAndWarp(1.F); + m_fScaleClients.setValueAndWarp(1.F); - // special case: fade enabled but this anim is disabled, so don't change anything. Only do the anim otherwise. - if (m_vRenderOffset.m_pConfig->pValues->internalEnabled || !m_fAlpha.m_pConfig->pValues->internalEnabled) { if (in) { m_vRenderOffset.setValueAndWarp(Vector2D(left ? XDISTANCE : -XDISTANCE, 0.0)); m_vRenderOffset = Vector2D(0, 0); |