From 69b8568ccff1cc225c5ad4b341c8a09bdf9f8654 Mon Sep 17 00:00:00 2001 From: vaxerski Date: Sat, 6 Aug 2022 20:57:38 +0200 Subject: better foreign toplevel protocol obedience --- src/Compositor.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/Compositor.cpp') diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 1d1dda08..c0ecb7f1 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1349,6 +1349,8 @@ void CCompositor::moveWorkspaceToMonitor(CWorkspace* pWorkspace, CMonitor* pMoni if (w->m_bIsFloating && w->m_bIsMapped && !w->m_bHidden) { w->m_vRealPosition = w->m_vRealPosition.vec() - POLDMON->vecPosition + pMonitor->vecPosition; } + + w->updateToplevel(); } } @@ -1541,3 +1543,16 @@ SLayerSurface* CCompositor::getLayerSurfaceFromWlr(wlr_layer_surface_v1* pLS) { return nullptr; } + +void CCompositor::closeWindow(CWindow* pWindow) { + if (pWindow && windowValidMapped(pWindow)) { + g_pXWaylandManager->sendCloseWindow(pWindow); + + if (pWindow == m_pLastWindow) { + g_pCompositor->m_pLastFocus = nullptr; + g_pCompositor->m_pLastWindow = nullptr; + g_pEventManager->postEvent(SHyprIPCEvent{"activewindow", ","}); // post an activewindow event to empty, as we are currently unfocused + g_pCompositor->focusWindow(g_pCompositor->windowFromCursor()); + } + } +} \ No newline at end of file -- cgit v1.2.3