diff options
| author | github-usr-name <github-usr-name@users.noreply.github.com> | 2024-02-25 14:03:00 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-25 14:03:00 +0000 |
| commit | f9cfec8abb9033e14f558fc2dc24dfa1c2a51e5a (patch) | |
| tree | 00b8d2e7d913a4cb8401cb70aacd7a86d82650d9 | |
| parent | f534ac3fc462d8af923d2a1ab8ef58f62639a1ea (diff) | |
compositor: allow source monitor to be provided to `getMonitorInDirection` (#4837)
Co-authored-by: github-user-name <spam-here@github.com>
| -rw-r--r-- | src/Compositor.cpp | 10 | ||||
| -rw-r--r-- | src/Compositor.hpp | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 5eeabf8a..3ac2d9b8 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1802,8 +1802,14 @@ CWindow* CCompositor::getConstraintWindow(SMouse* pMouse) { } CMonitor* CCompositor::getMonitorInDirection(const char& dir) { - const auto POSA = m_pLastMonitor->vecPosition; - const auto SIZEA = m_pLastMonitor->vecSize; + return this->getMonitorInDirection(m_pLastMonitor, dir); +} + +CMonitor* CCompositor::getMonitorInDirection(CMonitor* pSourceMonitor, const char& dir) { + if(!pSourceMonitor) return nullptr; + + const auto POSA = pSourceMonitor->vecPosition; + const auto SIZEA = pSourceMonitor->vecSize; auto longestIntersect = -1; CMonitor* longestIntersectMonitor = nullptr; diff --git a/src/Compositor.hpp b/src/Compositor.hpp index de5677c9..c08a5931 100644 --- a/src/Compositor.hpp +++ b/src/Compositor.hpp @@ -171,6 +171,7 @@ class CCompositor { bool isPointOnReservedArea(const Vector2D& point, const CMonitor* monitor = nullptr); CWindow* getConstraintWindow(SMouse*); CMonitor* getMonitorInDirection(const char&); + CMonitor* getMonitorInDirection(CMonitor*, const char&); void updateAllWindowsAnimatedDecorationValues(); void updateWorkspaceWindows(const int64_t& id); void updateWindowAnimatedDecorationValues(CWindow*); |
