From cc630c90b5d743b380ff2da741881796ec79e997 Mon Sep 17 00:00:00 2001 From: Jeremy Huang <66577496+thejch@users.noreply.github.com> Date: Fri, 15 Sep 2023 14:13:23 -0700 Subject: [PATCH] master: partially revert 0e64dd2e and fix the animation (#3327) --- src/layout/MasterLayout.cpp | 6 +++++- src/layout/MasterLayout.hpp | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index a4ab9d8a..d1b65e59 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -636,7 +636,7 @@ void CHyprMasterLayout::applyNodeDataToWindow(SMasterNodeData* pNode) { g_pXWaylandManager->setWindowSize(PWINDOW, calcSize); } - if (!*PANIMATE) { + if (m_bForceWarps && !*PANIMATE) { g_pHyprRenderer->damageWindow(PWINDOW); PWINDOW->m_vRealPosition.warp(); @@ -691,6 +691,8 @@ void CHyprMasterLayout::resizeActiveWindow(const Vector2D& pixResize, eRectCorne if (getNodesOnWorkspace(PWINDOW->m_iWorkspaceID) == 1 && !centered) return; + m_bForceWarps = true; + switch (orientation) { case ORIENTATION_LEFT: delta = pixResize.x / PMONITOR->vecSize.x; break; case ORIENTATION_RIGHT: delta = -pixResize.x / PMONITOR->vecSize.x; break; @@ -788,6 +790,8 @@ void CHyprMasterLayout::resizeActiveWindow(const Vector2D& pixResize, eRectCorne } recalculateMonitor(PMONITOR->ID); + + m_bForceWarps = false; } void CHyprMasterLayout::fullscreenRequestForWindow(CWindow* pWindow, eFullscreenMode fullscreenMode, bool on) { diff --git a/src/layout/MasterLayout.hpp b/src/layout/MasterLayout.hpp index fb896039..fd38b915 100644 --- a/src/layout/MasterLayout.hpp +++ b/src/layout/MasterLayout.hpp @@ -70,6 +70,8 @@ class CHyprMasterLayout : public IHyprLayout { std::list m_lMasterNodesData; std::vector m_lMasterWorkspacesData; + bool m_bForceWarps = false; + void buildOrientationCycleVectorFromVars(std::vector& cycle, CVarList& vars); void buildOrientationCycleVectorFromEOperation(std::vector& cycle); void runOrientationCycle(SLayoutMessageHeader& header, CVarList* vars, int next);