diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index f7154e54..f1326c2a 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -2002,7 +2002,7 @@ SWorkspaceRule CConfigManager::getWorkspaceRuleFor(CWorkspace* pWorkspace) { return *IT; } -std::vector CConfigManager::getMatchingRules(CWindow* pWindow) { +std::vector CConfigManager::getMatchingRules(CWindow* pWindow, bool dynamic) { if (!g_pCompositor->windowValidMapped(pWindow)) return std::vector(); @@ -2128,6 +2128,9 @@ std::vector CConfigManager::getMatchingRules(CWindow* pWindow) { returns.push_back(rule); + if (dynamic) + continue; + if (rule.szRule == "float") hasFloating = true; else if (rule.szRule == "fullscreen") diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp index d5957cd5..ecd781b7 100644 --- a/src/config/ConfigManager.hpp +++ b/src/config/ConfigManager.hpp @@ -120,7 +120,7 @@ class CConfigManager { std::string getBoundMonitorStringForWS(const std::string&); const std::deque& getAllWorkspaceRules(); - std::vector getMatchingRules(CWindow*); + std::vector getMatchingRules(CWindow*, bool dynamic = true); std::vector getMatchingRules(SLayerSurface*); std::unordered_map m_mAdditionalReservedAreas; diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp index df4b8ddb..36f82cd8 100644 --- a/src/events/Windows.cpp +++ b/src/events/Windows.cpp @@ -101,7 +101,7 @@ void Events::listener_mapWindow(void* owner, void* data) { } // window rules - const auto WINDOWRULES = g_pConfigManager->getMatchingRules(PWINDOW); + const auto WINDOWRULES = g_pConfigManager->getMatchingRules(PWINDOW, false); std::string requestedWorkspace = ""; bool workspaceSilent = false; bool requestsFullscreen = PWINDOW->m_bWantsInitialFullscreen ||