From 784c0b5ccb9b99bde66bd45bb94af5f195980f2e Mon Sep 17 00:00:00 2001 From: Gregory <56975502+Trimutex@users.noreply.github.com> Date: Tue, 25 Jun 2024 06:46:49 -0500 Subject: [PATCH] keybinds: fix mouse pass (#6652) * keybinds: fix mouse pass * keybinds: keep mouse and keyboard focus separate after pass bind --- src/managers/KeybindManager.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 37159ca8..c5a35012 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -2025,8 +2025,9 @@ void CKeybindManager::pass(std::string regexp) { return; } - const auto XWTOXW = PWINDOW->m_bIsX11 && g_pCompositor->m_pLastWindow.lock() && g_pCompositor->m_pLastWindow->m_bIsX11; - const auto LASTSRF = g_pCompositor->m_pLastFocus.lock(); + const auto XWTOXW = PWINDOW->m_bIsX11 && g_pCompositor->m_pLastWindow.lock() && g_pCompositor->m_pLastWindow->m_bIsX11; + const auto LASTMOUSESURF = g_pSeatManager->state.pointerFocus.lock(); + const auto LASTKBSURF = g_pSeatManager->state.keyboardFocus.lock(); // pass all mf shit if (!XWTOXW) { @@ -2078,9 +2079,9 @@ void CKeybindManager::pass(std::string regexp) { const auto SL = PWINDOW->m_vRealPosition.goal() - g_pInputManager->getMouseCoordsInternal(); if (g_pKeybindManager->m_uLastCode != 0) - g_pSeatManager->setKeyboardFocus(LASTSRF); + g_pSeatManager->setKeyboardFocus(LASTKBSURF); else - g_pSeatManager->setPointerFocus(PWINDOW->m_pWLSurface->resource(), SL); + g_pSeatManager->setPointerFocus(LASTMOUSESURF, SL); } void CKeybindManager::sendshortcut(std::string args) {