From 304bf4522ef672604b2ee73f044ba0a56405c88e Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Fri, 1 Apr 2022 23:31:12 +0200 Subject: Revert "Fixed XWayland (GTK/?) popups focus" This reverts commit cd62eb56249d9db6b3bb33aacdd578c8c162e3ae. Breaks a lot of other popups --- src/managers/InputManager.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/managers/InputManager.cpp') diff --git a/src/managers/InputManager.cpp b/src/managers/InputManager.cpp index 20ee8041..10b1ad95 100644 --- a/src/managers/InputManager.cpp +++ b/src/managers/InputManager.cpp @@ -23,6 +23,7 @@ void CInputManager::mouseMoveUnified(uint32_t time) { // update stuff updateDragIcon(); + // focus wlr_surface* foundSurface = nullptr; Vector2D mouseCoords = getMouseCoordsInternal(); @@ -65,10 +66,11 @@ 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->vectorToWindowIdealExcludeWithSurface(mouseCoords, nullptr, &foundSurface); - - if (foundSurface && PWINDOWIDEAL) { - surfacePos = PWINDOWIDEAL->m_vRealPosition; + const auto PWINDOWIDEAL = g_pCompositor->vectorToWindowIdeal(mouseCoords); + if (!foundSurface && PWINDOWIDEAL) { + foundSurface = g_pXWaylandManager->getWindowSurface(PWINDOWIDEAL); + if (foundSurface) + surfacePos = PWINDOWIDEAL->m_vRealPosition; } // then surfaces below @@ -122,6 +124,8 @@ 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