From a3ff9df4fae3219aa4363811317a31058dddee21 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sat, 8 Jun 2024 02:06:11 -0700 Subject: [PATCH] fix for core protocol rewrite --- src/protocols/ForeignToplevelWlr.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/protocols/ForeignToplevelWlr.cpp b/src/protocols/ForeignToplevelWlr.cpp index f6b0e85feb72..02d78bcaf2fb 100644 --- a/src/protocols/ForeignToplevelWlr.cpp +++ b/src/protocols/ForeignToplevelWlr.cpp @@ -37,11 +37,17 @@ CForeignToplevelHandleWlr::CForeignToplevelHandleWlr(SPgetMonitorFromOutput(wlr_output_from_resource(output)) : nullptr; + if (output) { + const auto wpMonitor = CWLOutputResource::fromResource(output)->monitor; - if (PMONITOR && PWINDOW->m_pWorkspace != PMONITOR->activeWorkspace) { - g_pCompositor->moveWindowToWorkspaceSafe(PWINDOW, PMONITOR->activeWorkspace); - g_pCompositor->setActiveMonitor(PMONITOR); + if (!wpMonitor.expired()) { + const auto monitor = wpMonitor.lock(); + + if (PWINDOW->m_pWorkspace != monitor->activeWorkspace) { + g_pCompositor->moveWindowToWorkspaceSafe(PWINDOW, monitor->activeWorkspace); + g_pCompositor->setActiveMonitor(monitor.get()); + } + } } g_pCompositor->setWindowFullscreen(PWINDOW, true, FULLSCREEN_FULL);