diff options
| author | thejch <66577496+thejch@users.noreply.github.com> | 2024-03-12 19:09:20 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-13 02:09:20 +0000 |
| commit | 7ea555da7fff0a2457e24e06bbd34986c0755025 (patch) | |
| tree | 7855f0d910baf28d6876b56ff9736540f7a87dfb /src/managers/KeybindManager.cpp | |
| parent | 6c53d4d82fd81aaa8aeb8c89ece1b88455a1f2a1 (diff) | |
master: Fix master layout window focus and scroll (#5074)
* fix master switch window scrolling
* fix some more dispatchers and remove some duplicate code
* refactor and remove duplicate code
* fix focusmonitor: https://github.com/hyprwm/Hyprland/issues/5006#issuecomment-1986977255
* change check
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 26326104..2125e9ba 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -227,7 +227,6 @@ bool CKeybindManager::tryMoveFocusToMonitor(CMonitor* monitor) { const auto PNEWMAINWORKSPACE = g_pCompositor->getWorkspaceByID(monitor->activeWorkspace); g_pInputManager->unconstrainMouse(); - g_pCompositor->setActiveMonitor(monitor); PNEWMAINWORKSPACE->rememberPrevWorkspace(PWORKSPACE); const auto PNEWWORKSPACE = monitor->specialWorkspaceID != 0 ? g_pCompositor->getWorkspaceByID(monitor->specialWorkspaceID) : PNEWMAINWORKSPACE; @@ -236,10 +235,15 @@ bool CKeybindManager::tryMoveFocusToMonitor(CMonitor* monitor) { if (PNEWWINDOW) { g_pCompositor->focusWindow(PNEWWINDOW); g_pCompositor->warpCursorTo(PNEWWINDOW->middle()); + + g_pInputManager->m_pForcedFocus = PNEWWINDOW; + g_pInputManager->simulateMouseMovement(); + g_pInputManager->m_pForcedFocus = nullptr; } else { g_pCompositor->focusWindow(nullptr); g_pCompositor->warpCursorTo(monitor->middle()); } + g_pCompositor->setActiveMonitor(monitor); return true; } |
