diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-08-03 12:27:20 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-08-03 12:27:20 +0200 |
| commit | f36cd350ccb21260def0c02cb9de803a85c4b4b8 (patch) | |
| tree | b7afb67b6af994e817fa35823b3e7f3d1bc6a7d0 /src/layout/DwindleLayout.cpp | |
| parent | c779a7c03bef72aff78c14a29f5ba106de50b8d6 (diff) | |
do not animate mouse resizes in layouts
Diffstat (limited to 'src/layout/DwindleLayout.cpp')
| -rw-r--r-- | src/layout/DwindleLayout.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp index be1c23d8..42f77760 100644 --- a/src/layout/DwindleLayout.cpp +++ b/src/layout/DwindleLayout.cpp @@ -1,7 +1,7 @@ #include "DwindleLayout.hpp" #include "../Compositor.hpp" -void SDwindleNodeData::recalcSizePosRecursive() { +void SDwindleNodeData::recalcSizePosRecursive(bool force) { // check the group, if we are in one and not active, ignore. if (pGroupParent && pGroupParent->groupMembers[pGroupParent->groupMemberActive] != this) { @@ -47,7 +47,7 @@ void SDwindleNodeData::recalcSizePosRecursive() { children[0]->recalcSizePosRecursive(); children[1]->recalcSizePosRecursive(); } else { - layout->applyNodeDataToWindow(this); + layout->applyNodeDataToWindow(this, force); } } @@ -94,7 +94,7 @@ SDwindleNodeData* CHyprDwindleLayout::getMasterNodeOnWorkspace(const int& id) { return nullptr; } -void CHyprDwindleLayout::applyNodeDataToWindow(SDwindleNodeData* pNode) { +void CHyprDwindleLayout::applyNodeDataToWindow(SDwindleNodeData* pNode, bool force) { // Don't set nodes, only windows. if (pNode->isNode) return; @@ -203,6 +203,11 @@ void CHyprDwindleLayout::applyNodeDataToWindow(SDwindleNodeData* pNode) { g_pXWaylandManager->setWindowSize(PWINDOW, calcSize); } + if (force) { + PWINDOW->m_vRealPosition.warp(); + PWINDOW->m_vRealSize.warp(); + } + PWINDOW->updateWindowDecos(); } @@ -504,11 +509,11 @@ void CHyprDwindleLayout::resizeActiveWindow(const Vector2D& pixResize, CWindow* if (PARENTSIDEBYSIDE) { allowedMovement.x *= 2.f / PPARENT->size.x; PPARENT->splitRatio = std::clamp(PPARENT->splitRatio + allowedMovement.x, (double)0.1f, (double)1.9f); - PPARENT->recalcSizePosRecursive(); + PPARENT->recalcSizePosRecursive(true); } else { allowedMovement.y *= 2.f / PPARENT->size.y; PPARENT->splitRatio = std::clamp(PPARENT->splitRatio + allowedMovement.y, (double)0.1f, (double)1.9f); - PPARENT->recalcSizePosRecursive(); + PPARENT->recalcSizePosRecursive(true); } return; @@ -523,11 +528,11 @@ void CHyprDwindleLayout::resizeActiveWindow(const Vector2D& pixResize, CWindow* if (PARENTSIDEBYSIDE) { allowedMovement.x *= 2.f / PPARENT->size.x; PPARENT->splitRatio = std::clamp(PPARENT->splitRatio + allowedMovement.x, (double)0.1f, (double)1.9f); - PPARENT->recalcSizePosRecursive(); + PPARENT->recalcSizePosRecursive(true); } else { allowedMovement.y *= 2.f / PPARENT->size.y; PPARENT->splitRatio = std::clamp(PPARENT->splitRatio + allowedMovement.y, (double)0.1f, (double)1.9f); - PPARENT->recalcSizePosRecursive(); + PPARENT->recalcSizePosRecursive(true); } return; @@ -542,8 +547,8 @@ void CHyprDwindleLayout::resizeActiveWindow(const Vector2D& pixResize, CWindow* SIDECONTAINER->splitRatio = std::clamp(SIDECONTAINER->splitRatio + allowedMovement.x, (double)0.1f, (double)1.9f); TOPCONTAINER->splitRatio = std::clamp(TOPCONTAINER->splitRatio + allowedMovement.y, (double)0.1f, (double)1.9f); - SIDECONTAINER->recalcSizePosRecursive(); - TOPCONTAINER->recalcSizePosRecursive(); + SIDECONTAINER->recalcSizePosRecursive(true); + TOPCONTAINER->recalcSizePosRecursive(true); } void CHyprDwindleLayout::fullscreenRequestForWindow(CWindow* pWindow, eFullscreenMode fullscreenMode, bool on) { |
