diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2026-05-06 13:56:12 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-06 13:56:12 +0100 |
| commit | 1681bea42dd2f11ba3fe6df05560d0b231de3c76 (patch) | |
| tree | 899103dbddf675a01758c7cdd379224c9c81a7fb /src/layout/supplementary/WorkspaceAlgoMatcher.cpp | |
| parent | 5f1350f522d3fe3af78cbe30a98311763b3509d5 (diff) | |
config/lua: add simple layout API (#14258)
Adds a simple layout lua api
Diffstat (limited to 'src/layout/supplementary/WorkspaceAlgoMatcher.cpp')
| -rw-r--r-- | src/layout/supplementary/WorkspaceAlgoMatcher.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/layout/supplementary/WorkspaceAlgoMatcher.cpp b/src/layout/supplementary/WorkspaceAlgoMatcher.cpp index fe868038..08744e12 100644 --- a/src/layout/supplementary/WorkspaceAlgoMatcher.cpp +++ b/src/layout/supplementary/WorkspaceAlgoMatcher.cpp @@ -4,6 +4,7 @@ #include "../../config/shared/workspace/WorkspaceRuleManager.hpp" #include "../algorithm/Algorithm.hpp" +#include "../algorithm/TiledAlgorithm.hpp" #include "../space/Space.hpp" #include "../algorithm/floating/default/DefaultFloatingAlgorithm.hpp" @@ -124,7 +125,9 @@ void CWorkspaceAlgoMatcher::updateWorkspaceLayouts() { const auto LAYOUT_TO_USE = tiledAlgoForWorkspace(ws.lock()); - if (m_algoNames.contains(&typeid(*TILED_ALGO.get())) && m_algoNames.at(&typeid(*TILED_ALGO.get())) == LAYOUT_TO_USE) + const auto CURRENT_LAYOUT = getNameForTiledAlgo(TILED_ALGO.get()); + + if (CURRENT_LAYOUT == LAYOUT_TO_USE && m_tiledAlgos.contains(LAYOUT_TO_USE)) continue; // needs a switchup @@ -132,6 +135,16 @@ void CWorkspaceAlgoMatcher::updateWorkspaceLayouts() { } } +std::string CWorkspaceAlgoMatcher::getNameForTiledAlgo(const ITiledAlgorithm* algo) { + if (!algo) + return "unknown"; + + if (const auto name = algo->layoutName(); name.has_value()) + return *name; + + return getNameForTiledAlgo(&typeid(*algo)); +} + std::string CWorkspaceAlgoMatcher::getNameForTiledAlgo(const std::type_info* type) { if (m_algoNames.contains(type)) return m_algoNames.at(type); |
