From cd62eb56249d9db6b3bb33aacdd578c8c162e3ae Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Fri, 1 Apr 2022 23:11:09 +0200 Subject: Fixed XWayland (GTK/?) popups focus --- src/managers/InputManager.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src/managers/InputManager.cpp') diff --git a/src/managers/InputManager.cpp b/src/managers/InputManager.cpp index 10b1ad95..20ee8041 100644 --- a/src/managers/InputManager.cpp +++ b/src/managers/InputManager.cpp @@ -23,7 +23,6 @@ void CInputManager::mouseMoveUnified(uint32_t time) { // update stuff updateDragIcon(); - // focus wlr_surface* foundSurface = nullptr; Vector2D mouseCoords = getMouseCoordsInternal(); @@ -66,11 +65,10 @@ void CInputManager::mouseMoveUnified(uint32_t time) { foundSurface = g_pCompositor->vectorToLayerSurface(mouseCoords, &PMONITOR->m_aLayerSurfaceLists[ZWLR_LAYER_SHELL_V1_LAYER_TOP], &surfaceCoords); // then windows - const auto PWINDOWIDEAL = g_pCompositor->vectorToWindowIdeal(mouseCoords); - if (!foundSurface && PWINDOWIDEAL) { - foundSurface = g_pXWaylandManager->getWindowSurface(PWINDOWIDEAL); - if (foundSurface) - surfacePos = PWINDOWIDEAL->m_vRealPosition; + const auto PWINDOWIDEAL = g_pCompositor->vectorToWindowIdealExcludeWithSurface(mouseCoords, nullptr, &foundSurface); + + if (foundSurface && PWINDOWIDEAL) { + surfacePos = PWINDOWIDEAL->m_vRealPosition; } // then surfaces below @@ -124,8 +122,6 @@ void CInputManager::onMouseButton(wlr_pointer_button_event* e) { break; } - refocus(); - // notify app if we didnt handle it if (g_pCompositor->doesSeatAcceptInput(g_pCompositor->m_pLastFocus)) { wlr_seat_pointer_notify_button(g_pCompositor->m_sSeat.seat, e->time_msec, e->button, e->state); -- cgit v1.2.3