diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 2e67cbde..289fdafb 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -796,8 +796,6 @@ void CCompositor::focusWindow(CWindow* pWindow, wlr_surface* pSurface) { } if (!pWindow || !windowValidMapped(pWindow)) { - g_pInputManager->releaseAllMouseButtons(); - const auto PLASTWINDOW = m_pLastWindow; m_pLastWindow = nullptr; @@ -870,7 +868,6 @@ void CCompositor::focusWindow(CWindow* pWindow, wlr_surface* pSurface) { // do pointer focus too const auto POINTERLOCAL = g_pInputManager->getMouseCoordsInternal() - pWindow->m_vRealPosition.goalv(); - g_pInputManager->releaseAllMouseButtons(); wlr_seat_pointer_notify_enter(m_sSeat.seat, PWINDOWSURFACE, POINTERLOCAL.x, POINTERLOCAL.y); updateWindowAnimatedDecorationValues(pWindow); diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index d86bec4a..39b0292a 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -770,6 +770,8 @@ void CKeybindManager::changeworkspace(std::string args) { auto pWorkspaceToChangeTo = g_pCompositor->getWorkspaceByID(PCURRENTWORKSPACE->m_sPrevWorkspace.iID); + g_pInputManager->releaseAllMouseButtons(); + if (pWorkspaceToChangeTo) { const auto PMONITORWORKSPACEOWNER = PMONITOR->ID == pWorkspaceToChangeTo->m_iMonitorID ? PMONITOR : g_pCompositor->getMonitorFromID(pWorkspaceToChangeTo->m_iMonitorID); @@ -814,6 +816,8 @@ void CKeybindManager::changeworkspace(std::string args) { return; } + g_pInputManager->releaseAllMouseButtons(); + const auto PMONITORWORKSPACEOWNER = PMONITOR->ID == pWorkspaceToChangeTo->m_iMonitorID ? PMONITOR : g_pCompositor->getMonitorFromID(pWorkspaceToChangeTo->m_iMonitorID); g_pCompositor->setActiveMonitor(PMONITORWORKSPACEOWNER);