summaryrefslogtreecommitdiff
path: root/src/layout/DwindleLayout.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-23 10:14:59 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-23 10:14:59 +0200
commit31dc70a41a605b09e31bb7394fc0e339a1b82418 (patch)
tree68c8ff8b332988836f624603adf4512506d2c86e /src/layout/DwindleLayout.cpp
parentf9745b0d3b85c447c3c8d3421db638f1087a1e91 (diff)
Added exact to resizeActive and added moveactive
Diffstat (limited to 'src/layout/DwindleLayout.cpp')
-rw-r--r--src/layout/DwindleLayout.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp
index ce63ace6..ed8da473 100644
--- a/src/layout/DwindleLayout.cpp
+++ b/src/layout/DwindleLayout.cpp
@@ -545,11 +545,7 @@ void CHyprDwindleLayout::resizeActiveWindow(const Vector2D& pixResize, CWindow*
const auto PNODE = getNodeFromWindow(PWINDOW);
if (!PNODE) {
- PWINDOW->m_vRealSize.setValueAndWarp(PWINDOW->m_vRealSize.goalv() + pixResize);
- PWINDOW->m_vRealSize.setValueAndWarp(Vector2D(std::clamp(PWINDOW->m_vRealSize.vec().x, (double)20, (double)999999), std::clamp(PWINDOW->m_vRealSize.vec().y, (double)20, (double)999999)));
-
- g_pXWaylandManager->setWindowSize(PWINDOW, PWINDOW->m_vRealSize.goalv());
-
+ PWINDOW->m_vRealSize = Vector2D(std::clamp((PWINDOW->m_vRealSize.goalv() + pixResize).x, (double)20, (double)999999), std::clamp((PWINDOW->m_vRealSize.goalv() + pixResize).y, (double)20, (double)999999));
return;
}
@@ -992,4 +988,20 @@ void CHyprDwindleLayout::toggleSplit(CWindow* pWindow) {
std::string CHyprDwindleLayout::getLayoutName() {
return "dwindle";
+}
+
+void CHyprDwindleLayout::moveActiveWindow(const Vector2D& delta, CWindow* pWindow) {
+ const auto PWINDOW = pWindow ? pWindow : g_pCompositor->m_pLastWindow;
+
+ if (!g_pCompositor->windowValidMapped(PWINDOW))
+ return;
+
+ if (!PWINDOW->m_bIsFloating) {
+ Debug::log(LOG, "Dwindle cannot move a tiled window in moveActiveWindow!");
+ return;
+ }
+
+ PWINDOW->m_vRealPosition = PWINDOW->m_vRealPosition.goalv() + delta;
+
+ g_pHyprRenderer->damageWindow(PWINDOW);
} \ No newline at end of file