summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 0bf2ffcf..bf36bf89 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -361,6 +361,14 @@ void CCompositor::focusWindow(CWindow* pWindow, wlr_surface* pSurface) {
return;
}
+ if (m_pLastWindow == pWindow)
+ return;
+
+ if (windowValidMapped(m_pLastWindow) && m_pLastWindow->m_bIsX11) {
+ wlr_seat_keyboard_notify_clear_focus(m_sSeat.seat);
+ wlr_seat_pointer_clear_focus(m_sSeat.seat);
+ }
+
const auto PWINDOWSURFACE = pSurface ? pSurface : g_pXWaylandManager->getWindowSurface(pWindow);
focusSurface(PWINDOWSURFACE, pWindow);