From c779a7c03bef72aff78c14a29f5ba106de50b8d6 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Wed, 3 Aug 2022 12:03:18 +0200 Subject: [PATCH] move refocus on only unmap --- src/events/Windows.cpp | 4 ++++ src/managers/input/InputManager.cpp | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index ff4b147f..fa080dd7 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -383,6 +383,10 @@ void Events::listener_unmapWindow(void* owner, void* data) { // refocus on a new window g_pInputManager->refocus(); + if (!g_pCompositor->m_pLastWindow) { + g_pCompositor->focusWindow(g_pCompositor->getFirstWindowOnWorkspace(PWORKSPACE->m_iID)); + } + Debug::log(LOG, "Destroying the SubSurface tree of unmapped window %x", PWINDOW); SubsurfaceTree::destroySurfaceTree(PWINDOW->m_pSurfaceTree); diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 8dbff347..d0783533 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -183,9 +183,6 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) { } else pFoundWindow = g_pCompositor->vectorToWindowIdeal(mouseCoords); - if (!pFoundWindow && refocus) - pFoundWindow = g_pCompositor->getFirstWindowOnWorkspace(PWORKSPACE->m_iID); - if (pFoundWindow) { if (!pFoundWindow->m_bIsX11) { foundSurface = g_pCompositor->vectorWindowToSurface(mouseCoords, pFoundWindow, surfaceCoords);