From ba2af6f86d26fbf4b51aa37bf901e0118f46bbe3 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Tue, 12 Dec 2023 14:58:43 +0000 Subject: [PATCH] focus: prefer sendMotionEventsToFocused for ensuring cursor image --- src/Compositor.cpp | 4 ++-- src/events/Layers.cpp | 2 +- src/events/Windows.cpp | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 3b022a196..0eb1b00ab 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1989,7 +1989,7 @@ void CCompositor::swapActiveWorkspaces(CMonitor* pMonitorA, CMonitor* pMonitorB) updateFullscreenFadeOnWorkspace(PWORKSPACEB); updateFullscreenFadeOnWorkspace(PWORKSPACEA); - g_pInputManager->simulateMouseMovement(); + g_pInputManager->sendMotionEventsToFocused(); // event g_pEventManager->postEvent(SHyprIPCEvent{"moveworkspace", PWORKSPACEA->m_szName + "," + pMonitorB->szName}); @@ -2174,7 +2174,7 @@ void CCompositor::moveWorkspaceToMonitor(CWorkspace* pWorkspace, CMonitor* pMoni wlr_cursor_warp(m_sWLRCursor, nullptr, pMonitor->vecPosition.x + pMonitor->vecTransformedSize.x / 2, pMonitor->vecPosition.y + pMonitor->vecTransformedSize.y / 2); - g_pInputManager->simulateMouseMovement(); + g_pInputManager->sendMotionEventsToFocused(); } // finalize diff --git a/src/events/Layers.cpp b/src/events/Layers.cpp index a9d8b5d09..d6e21d9da 100644 --- a/src/events/Layers.cpp +++ b/src/events/Layers.cpp @@ -255,7 +255,7 @@ void Events::listener_unmapLayerSurface(void* owner, void* data) { (int)layersurface->layerSurface->surface->current.width, (int)layersurface->layerSurface->surface->current.height}; g_pHyprRenderer->damageBox(&geomFixed); - g_pInputManager->simulateMouseMovement(); + g_pInputManager->sendMotionEventsToFocused(); } void Events::listener_commitLayerSurface(void* owner, void* data) { diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index 2c1079993..efefcbec2 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -641,8 +641,7 @@ void Events::listener_mapWindow(void* owner, void* data) { g_pCompositor->setPreferredScaleForSurface(PWINDOW->m_pWLSurface.wlr(), PMONITOR->scale); g_pCompositor->setPreferredTransformForSurface(PWINDOW->m_pWLSurface.wlr(), PMONITOR->transform); - if (g_pCompositor->vectorToWindowIdeal(g_pInputManager->getMouseCoordsInternal()) == g_pCompositor->m_pLastWindow) - g_pInputManager->simulateMouseMovement(); + g_pInputManager->sendMotionEventsToFocused(); // fix some xwayland apps that don't behave nicely PWINDOW->m_vReportedSize = PWINDOW->m_vPendingReportedSize; @@ -737,8 +736,7 @@ void Events::listener_unmapWindow(void* owner, void* data) { if (PWINDOWCANDIDATE != g_pCompositor->m_pLastWindow && PWINDOWCANDIDATE) g_pCompositor->focusWindow(PWINDOWCANDIDATE); - if (g_pCompositor->vectorToWindowIdeal(g_pInputManager->getMouseCoordsInternal()) == PWINDOWCANDIDATE) - g_pInputManager->simulateMouseMovement(); + g_pInputManager->sendMotionEventsToFocused(); // CWindow::onUnmap will remove this window's active status, but we can't really do it above. if (PWINDOW == g_pCompositor->m_pLastWindow || !g_pCompositor->m_pLastWindow) {