diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-11-03 22:55:44 +0000 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-11-03 22:55:44 +0000 |
| commit | 349afa0e7a5a8f60404772ae76ab0dc6fe4117ff (patch) | |
| tree | c93b27e31ec1b9e848b0b641a6338b9a69adb9b6 /src/layout/MasterLayout.cpp | |
| parent | 748a6965caaf2d6e420a8a55238f8ff104f3df6e (diff) | |
guard header windows in layout messages
Diffstat (limited to 'src/layout/MasterLayout.cpp')
| -rw-r--r-- | src/layout/MasterLayout.cpp | 13 |
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)) |
