diff options
| author | shezdy <77217897+shezdy@users.noreply.github.com> | 2024-05-22 13:51:46 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-22 21:51:46 +0200 |
| commit | 155ae3721c5ef57321a7ef010369f0e03a358612 (patch) | |
| tree | 5d1f2256bc4c24b9e0bf25a1c9f155a80d0b7477 /src/managers/KeybindManager.cpp | |
| parent | 93fea890433ec11d7a915f5e0466b2e8b513e895 (diff) | |
keybinds: Add option to disable window direction monitor fallback (#6182)
* add monitor fallback option
* format
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index ea064031..925a7fb7 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -1220,8 +1220,9 @@ void CKeybindManager::moveActiveToWorkspaceSilent(std::string args) { } void CKeybindManager::moveFocusTo(std::string args) { - static auto PFULLCYCLE = CConfigValue<Hyprlang::INT>("binds:movefocus_cycles_fullscreen"); - char arg = args[0]; + static auto PFULLCYCLE = CConfigValue<Hyprlang::INT>("binds:movefocus_cycles_fullscreen"); + static auto PMONITORFALLBACK = CConfigValue<Hyprlang::INT>("binds:window_direction_monitor_fallback"); + char arg = args[0]; if (!isDirection(args)) { Debug::log(ERR, "Cannot move focus in direction {}, unsupported direction. Supported: l,r,u/t,d/b", arg); @@ -1230,7 +1231,9 @@ void CKeybindManager::moveFocusTo(std::string args) { const auto PLASTWINDOW = g_pCompositor->m_pLastWindow.lock(); if (!PLASTWINDOW) { - tryMoveFocusToMonitor(g_pCompositor->getMonitorInDirection(arg)); + if (*PMONITORFALLBACK) + tryMoveFocusToMonitor(g_pCompositor->getMonitorInDirection(arg)); + return; } @@ -1246,7 +1249,7 @@ void CKeybindManager::moveFocusTo(std::string args) { Debug::log(LOG, "No window found in direction {}, looking for a monitor", arg); - if (tryMoveFocusToMonitor(g_pCompositor->getMonitorInDirection(arg))) + if (*PMONITORFALLBACK && tryMoveFocusToMonitor(g_pCompositor->getMonitorInDirection(arg))) return; static auto PNOFALLBACK = CConfigValue<Hyprlang::INT>("general:no_focus_fallback"); @@ -1317,6 +1320,8 @@ void CKeybindManager::moveActiveTo(std::string args) { moveActiveToWorkspaceSilent(PNEWMONITOR->activeWorkspace->getConfigName()); else moveActiveToWorkspace(PNEWMONITOR->activeWorkspace->getConfigName()); + + return; } if (!isDirection(args)) { @@ -1356,6 +1361,10 @@ void CKeybindManager::moveActiveTo(std::string args) { return; } + static auto PMONITORFALLBACK = CConfigValue<Hyprlang::INT>("binds:window_direction_monitor_fallback"); + if (!*PMONITORFALLBACK) + return; + // Otherwise, we always want to move to the next monitor in that direction const auto PMONITORTOCHANGETO = g_pCompositor->getMonitorInDirection(arg); if (!PMONITORTOCHANGETO) |
