aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 68070c2e..e9dad892 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -896,6 +896,11 @@ void CCompositor::focusSurface(wlr_surface* pSurface, CWindow* pWindowOwner) {
(pWindowOwner && m_sSeat.seat->keyboard_state.focused_surface == g_pXWaylandManager->getWindowSurface(pWindowOwner)))
return; // Don't focus when already focused on this.
+ if (g_pSessionLockManager->isSessionLocked()) {
+ wlr_seat_keyboard_clear_focus(m_sSeat.seat);
+ m_pLastFocus = nullptr;
+ }
+
// Unfocus last surface if should
if (m_pLastFocus && !pWindowOwner)
g_pXWaylandManager->activateSurface(m_pLastFocus, false);
@@ -905,7 +910,7 @@ void CCompositor::focusSurface(wlr_surface* pSurface, CWindow* pWindowOwner) {
g_pEventManager->postEvent(SHyprIPCEvent{"activewindow", ","}); // unfocused
g_pEventManager->postEvent(SHyprIPCEvent{"activewindowv2", ","});
g_pInputManager->m_sIMERelay.onKeyboardFocus(nullptr);
- g_pCompositor->m_pLastFocus = nullptr;
+ m_pLastFocus = nullptr;
return;
}