diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 69c70af85..cd603ca54 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -201,7 +201,6 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus, bool mouse) { Vector2D surfacePos = Vector2D(-1337, -1337); PHLWINDOW pFoundWindow; PHLLS pFoundLayerSurface; - bool sendExternalMouseEvents = false; EMIT_HOOK_EVENT_CANCELLABLE("mouseMove", MOUSECOORDSFLOORED); @@ -298,8 +297,7 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus, bool mouse) { // and we're not dnd-ing, don't refocus. Keep focus on last surface. if (!PROTO::data->dndActive() && !m_currentlyHeldButtons.empty() && g_pCompositor->m_lastFocus && g_pCompositor->m_lastFocus->m_mapped && g_pSeatManager->m_state.pointerFocus && !m_hardInput) { - foundSurface = g_pSeatManager->m_state.pointerFocus.lock(); - sendExternalMouseEvents = true; + foundSurface = g_pSeatManager->m_state.pointerFocus.lock(); // IME popups aren't desktop-like elements // TODO: make them. @@ -600,19 +598,6 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus, bool mouse) { m_lastFocusOnLS = true; } - // Don't send events outside of the surface unless holding a mouse button, - // except for X11 surfaces which are always sent events in case of potential breakage. - if (!sendExternalMouseEvents && foundSurface && (!pFoundWindow || !pFoundWindow->m_isX11)) { - if (!foundSurface->at(surfaceLocal, true).first) - foundSurface = nullptr; - } - - // Releases any seat grabs after a click outside of them not handled by an earlier case (notably exclusive layers). - if ((m_hardInput || refocus) && g_pSeatManager->m_seatGrab && !foundSurface) { - g_pSeatManager->setGrab(nullptr); - return; // setGrab will refocus - } - g_pSeatManager->setPointerFocus(foundSurface, surfaceLocal); g_pSeatManager->sendPointerMotion(time, surfaceLocal); }