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);