summaryrefslogtreecommitdiff
path: root/src/layout/MasterLayout.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-11-03 22:55:44 +0000
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-11-03 22:55:44 +0000
commit349afa0e7a5a8f60404772ae76ab0dc6fe4117ff (patch)
treec93b27e31ec1b9e848b0b641a6338b9a69adb9b6 /src/layout/MasterLayout.cpp
parent748a6965caaf2d6e420a8a55238f8ff104f3df6e (diff)
guard header windows in layout messages
Diffstat (limited to 'src/layout/MasterLayout.cpp')
-rw-r--r--src/layout/MasterLayout.cpp13
1 files changed, 13 insertions, 0 deletions
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))