diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index cbee36fc..aa0612fc 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -808,6 +808,9 @@ void Events::listener_activateXDG(wl_listener* listener, void* data) { if (!PWINDOW || PWINDOW == g_pCompositor->m_pLastWindow) return; + if (PWINDOW->m_bIsFloating) + g_pCompositor->moveWindowToTop(PWINDOW); + g_pCompositor->focusWindow(PWINDOW); Vector2D middle = PWINDOW->m_vRealPosition.goalv() + PWINDOW->m_vRealSize.goalv() / 2.f; g_pCompositor->warpCursorTo(middle); @@ -823,6 +826,9 @@ void Events::listener_activateX11(void* owner, void* data) { if (!*PFOCUSONACTIVATE || PWINDOW->m_iX11Type != 1 || PWINDOW == g_pCompositor->m_pLastWindow) return; + if (PWINDOW->m_bIsFloating) + g_pCompositor->moveWindowToTop(PWINDOW); + g_pCompositor->focusWindow(PWINDOW); Vector2D middle = PWINDOW->m_vRealPosition.goalv() + PWINDOW->m_vRealSize.goalv() / 2.f; g_pCompositor->warpCursorTo(middle);