From 7ec23254fd19fe2bf5b35b2bb07623ce87a23c41 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Fri, 14 Apr 2023 17:03:12 +0100 Subject: [PATCH] workspace: don't lose monitor with refocus on no warps --- src/managers/KeybindManager.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index fb902e74..06ff8d39 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -788,8 +788,10 @@ void CKeybindManager::changeworkspace(std::string args) { g_pCompositor->setActiveMonitor(PMONITORWORKSPACEOWNER); if (const auto PLASTWINDOW = pWorkspaceToChangeTo->getLastFocusedWindow(); PLASTWINDOW) g_pCompositor->focusWindow(PLASTWINDOW); + else if (const auto PFIRSTWINDOW = g_pCompositor->getFirstWindowOnWorkspace(pWorkspaceToChangeTo->m_iID); PFIRSTWINDOW) + g_pCompositor->focusWindow(PFIRSTWINDOW); else - g_pInputManager->refocus(); + g_pCompositor->focusWindow(nullptr); } if (*PALLOWWORKSPACECYCLES) @@ -822,8 +824,10 @@ void CKeybindManager::changeworkspace(std::string args) { if (const auto PLASTWINDOW = pWorkspaceToChangeTo->getLastFocusedWindow(); PLASTWINDOW) g_pCompositor->focusWindow(PLASTWINDOW); + else if (const auto PFIRSTWINDOW = g_pCompositor->getFirstWindowOnWorkspace(pWorkspaceToChangeTo->m_iID); PFIRSTWINDOW) + g_pCompositor->focusWindow(PFIRSTWINDOW); else - g_pInputManager->refocus(); + g_pCompositor->focusWindow(nullptr); } pWorkspaceToChangeTo->m_sPrevWorkspace = {PCURRENTWORKSPACE->m_iID, PCURRENTWORKSPACE->m_szName};