summaryrefslogtreecommitdiff
path: root/src/Window.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-23 20:39:48 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-23 20:39:48 +0200
commitf76b9c485246849bc3af838503fedbadf68023f5 (patch)
treef18fe6f0ca4fb0aa2b1ab6a2bf1f66259ea879b5 /src/Window.cpp
parentae6007522600c969b5fe45b3888be5f12f343d1c (diff)
fix: ignore reserved in getWindowInDirection
Diffstat (limited to 'src/Window.cpp')
-rw-r--r--src/Window.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/Window.cpp b/src/Window.cpp
index 2182d47c..8476360a 100644
--- a/src/Window.cpp
+++ b/src/Window.cpp
@@ -43,4 +43,29 @@ wlr_box CWindow::getFullWindowBoundingBox() {
m_vRealSize.vec().y + maxExtents.topLeft.y + maxExtents.bottomRight.y};
return finalBox;
+}
+
+wlr_box CWindow::getWindowIdealBoundingBoxIgnoreReserved() {
+
+ const auto PMONITOR = g_pCompositor->getMonitorFromID(m_iMonitorID);
+
+ auto POS = m_vPosition;
+ auto SIZE = m_vSize;
+
+ if (DELTALESSTHAN(POS.y - PMONITOR->vecPosition.y, PMONITOR->vecReservedTopLeft.y, 1)) {
+ POS.y = PMONITOR->vecPosition.y;
+ SIZE.y += PMONITOR->vecReservedTopLeft.y;
+ }
+ if (DELTALESSTHAN(POS.x - PMONITOR->vecPosition.x, PMONITOR->vecReservedTopLeft.x, 1)) {
+ POS.x = PMONITOR->vecPosition.x;
+ SIZE.x += PMONITOR->vecReservedTopLeft.x;
+ }
+ if (DELTALESSTHAN(POS.x + SIZE.x - PMONITOR->vecPosition.x, PMONITOR->vecSize.x - PMONITOR->vecReservedBottomRight.x, 1)) {
+ SIZE.x += PMONITOR->vecReservedBottomRight.x;
+ }
+ if (DELTALESSTHAN(POS.y + SIZE.y - PMONITOR->vecPosition.y, PMONITOR->vecSize.y - PMONITOR->vecReservedBottomRight.y, 1)) {
+ SIZE.y += PMONITOR->vecReservedBottomRight.y;
+ }
+
+ return wlr_box{(int)POS.x, (int)POS.y, (int)SIZE.x, (int)SIZE.y};
} \ No newline at end of file