summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorshezdy <77217897+shezdy@users.noreply.github.com>2024-05-22 13:51:46 -0600
committerGitHub <noreply@github.com>2024-05-22 21:51:46 +0200
commit155ae3721c5ef57321a7ef010369f0e03a358612 (patch)
tree5d1f2256bc4c24b9e0bf25a1c9f155a80d0b7477 /src/Compositor.cpp
parent93fea890433ec11d7a915f5e0466b2e8b513e895 (diff)
keybinds: Add option to disable window direction monitor fallback (#6182)
* add monitor fallback option * format
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index efbd997f..5c9cfbad 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -1386,7 +1386,8 @@ PHLWINDOW CCompositor::getWindowInDirection(PHLWINDOW pWindow, char dir) {
return nullptr;
// 0 -> history, 1 -> shared length
- static auto PMETHOD = CConfigValue<Hyprlang::INT>("binds:focus_preferred_method");
+ static auto PMETHOD = CConfigValue<Hyprlang::INT>("binds:focus_preferred_method");
+ static auto PMONITORFALLBACK = CConfigValue<Hyprlang::INT>("binds:window_direction_monitor_fallback");
const auto PMONITOR = g_pCompositor->getMonitorFromID(pWindow->m_iMonitorID);
@@ -1416,6 +1417,9 @@ PHLWINDOW CCompositor::getWindowInDirection(PHLWINDOW pWindow, char dir) {
if (PWORKSPACE->m_bHasFullscreenWindow && !w->m_bIsFullscreen && !w->m_bCreatedOverFullscreen)
continue;
+ if (!*PMONITORFALLBACK && pWindow->m_iMonitorID != w->m_iMonitorID)
+ continue;
+
const auto BWINDOWIDEALBB = w->getWindowIdealBoundingBoxIgnoreReserved();
const auto POSB = Vector2D(BWINDOWIDEALBB.x, BWINDOWIDEALBB.y);
@@ -1505,6 +1509,9 @@ PHLWINDOW CCompositor::getWindowInDirection(PHLWINDOW pWindow, char dir) {
if (PWORKSPACE->m_bHasFullscreenWindow && !w->m_bIsFullscreen && !w->m_bCreatedOverFullscreen)
continue;
+ if (!*PMONITORFALLBACK && pWindow->m_iMonitorID != w->m_iMonitorID)
+ continue;
+
const auto DIST = w->middle().distance(pWindow->middle());
const auto ANGLE = vectorAngles(Vector2D{w->middle() - pWindow->middle()}, VECTORS.at(dir));