diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index d2577577..6021fac2 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -542,7 +542,6 @@ std::any CHyprMasterLayout::layoutMessage(SLayoutMessageHeader header, std::stri }; if (message == "swapwithmaster") { - const auto PWINDOW = header.pWindow; if (!isWindowTiled(PWINDOW)) @@ -557,6 +556,16 @@ std::any CHyprMasterLayout::layoutMessage(SLayoutMessageHeader header, std::stri switchToWindow(PWINDOW); + return 0; + } else if (message == "focusmaster") { + const auto PWINDOW = header.pWindow; + const auto PMASTER = getMasterNodeOnWorkspace(PWINDOW->m_iWorkspaceID); + + if (!PMASTER || PMASTER->pWindow == PWINDOW) + return 0; + + switchToWindow(PMASTER->pWindow); + return 0; } else if (message == "cyclenext") { const auto PWINDOW = header.pWindow;