From 7b73570f11c61aa87b6052e5687dc612510ff575 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Wed, 8 Jun 2022 15:13:47 +0200 Subject: [PATCH] fix a crash in monitorDestroy --- src/events/Monitors.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index 0a7401de..7756bfa2 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -319,14 +319,16 @@ void Events::listener_monitorDestroy(void* owner, void* data) { // Cleanup everything. Move windows back, snap cursor, shit. const auto BACKUPMON = &g_pCompositor->m_lMonitors.front(); - const auto BACKUPWORKSPACE = BACKUPMON->activeWorkspace > 0 ? std::to_string(BACKUPMON->activeWorkspace) : "name:" + g_pCompositor->getWorkspaceByID(BACKUPMON->activeWorkspace)->m_szName; - + if (!BACKUPMON) { Debug::log(CRIT, "No monitors! Unplugged last! Exiting."); g_pCompositor->cleanupExit(); + exit(1); return; } + const auto BACKUPWORKSPACE = BACKUPMON->activeWorkspace > 0 ? std::to_string(BACKUPMON->activeWorkspace) : "name:" + g_pCompositor->getWorkspaceByID(BACKUPMON->activeWorkspace)->m_szName; + // snap cursor wlr_cursor_warp(g_pCompositor->m_sWLRCursor, g_pCompositor->m_sSeat.mouse->mouse, BACKUPMON->vecPosition.x + BACKUPMON->vecTransformedSize.x / 2.f, BACKUPMON->vecPosition.y + BACKUPMON->vecTransformedSize.y / 2.f);