diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-06-23 20:39:48 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-06-23 20:39:48 +0200 |
| commit | f76b9c485246849bc3af838503fedbadf68023f5 (patch) | |
| tree | f18fe6f0ca4fb0aa2b1ab6a2bf1f66259ea879b5 /src/Window.cpp | |
| parent | ae6007522600c969b5fe45b3888be5f12f343d1c (diff) | |
fix: ignore reserved in getWindowInDirection
Diffstat (limited to 'src/Window.cpp')
| -rw-r--r-- | src/Window.cpp | 25 |
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 |
