From 349afa0e7a5a8f60404772ae76ab0dc6fe4117ff Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 3 Nov 2022 22:55:44 +0000 Subject: [PATCH] guard header windows in layout messages --- src/layout/MasterLayout.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index 6021fac2..f8b8f9a2 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -544,6 +544,9 @@ std::any CHyprMasterLayout::layoutMessage(SLayoutMessageHeader header, std::stri if (message == "swapwithmaster") { const auto PWINDOW = header.pWindow; + if (!PWINDOW) + return 0; + if (!isWindowTiled(PWINDOW)) return 0; @@ -559,6 +562,10 @@ std::any CHyprMasterLayout::layoutMessage(SLayoutMessageHeader header, std::stri return 0; } else if (message == "focusmaster") { const auto PWINDOW = header.pWindow; + + if (!PWINDOW) + return 0; + const auto PMASTER = getMasterNodeOnWorkspace(PWINDOW->m_iWorkspaceID); if (!PMASTER || PMASTER->pWindow == PWINDOW) @@ -570,10 +577,16 @@ std::any CHyprMasterLayout::layoutMessage(SLayoutMessageHeader header, std::stri } else if (message == "cyclenext") { const auto PWINDOW = header.pWindow; + if (!PWINDOW) + return 0; + switchToWindow(getNextWindow(PWINDOW, true)); } else if (message == "cycleprev") { const auto PWINDOW = header.pWindow; + if (!PWINDOW) + return 0; + switchToWindow(getNextWindow(PWINDOW, false)); } else if (message == "swapnext") { if (!g_pCompositor->windowValidMapped(header.pWindow))