summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index df32f1ce..b2947025 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -348,8 +348,9 @@ void CCompositor::focusSurface(wlr_surface* pSurface) {
if (!pSurface)
return;
- // Unfocus last surface
- if (m_pLastFocus && !wlr_surface_is_xwayland_surface(m_pLastFocus))
+ // Unfocus last surface if should
+ const auto PWINDOWATCURSOR = vectorToWindowIdeal(g_pInputManager->getMouseCoordsInternal());
+ if (m_pLastFocus && !(PWINDOWATCURSOR && g_pXWaylandManager->getWindowSurface(PWINDOWATCURSOR) == m_pLastFocus))
g_pXWaylandManager->activateSurface(m_pLastFocus, false);
const auto KEYBOARD = wlr_seat_get_keyboard(m_sSeat.seat);