From e427d9f622d852c20d0f24966dbe35a34f600de4 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sat, 19 Nov 2022 16:41:36 +0000 Subject: unify setting of the active monitor --- src/Compositor.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/Compositor.cpp') diff --git a/src/Compositor.cpp b/src/Compositor.cpp index e6a39c7b..f698f05a 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1874,7 +1874,7 @@ void CCompositor::warpCursorTo(const Vector2D& pos) { const auto PMONITORNEW = getMonitorFromVector(pos); if (PMONITORNEW != m_pLastMonitor) - m_pLastMonitor = PMONITORNEW; + setActiveMonitor(PMONITORNEW); } SLayerSurface* CCompositor::getLayerSurfaceFromWlr(wlr_layer_surface_v1* pLS) { @@ -1987,3 +1987,13 @@ CWorkspace* CCompositor::createNewWorkspace(const int& id, const int& monid, con return PWORKSPACE; } + +void CCompositor::setActiveMonitor(CMonitor* pMonitor) { + if (m_pLastMonitor == pMonitor) + return; + + const auto PWORKSPACE = getWorkspaceByID(pMonitor->activeWorkspace); + + g_pEventManager->postEvent(SHyprIPCEvent{"focusedmon", pMonitor->szName + "," + PWORKSPACE->m_szName}); + m_pLastMonitor = pMonitor; +} -- cgit v1.2.3