diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-02-18 00:13:38 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-02-18 00:13:43 +0000 |
| commit | 683a4b07c514fa3c13cdf09e475283a69fcc7653 (patch) | |
| tree | c19583cc0868e061bc8d7c70b5e319425230a0e5 /src | |
| parent | 5261a8df81c1aad07b582bce82d164801de533b0 (diff) | |
rules: ignore static tile/float rules in dynamic gets
fixes #4736
Diffstat (limited to 'src')
| -rw-r--r-- | src/config/ConfigManager.cpp | 5 | ||||
| -rw-r--r-- | src/config/ConfigManager.hpp | 2 | ||||
| -rw-r--r-- | src/events/Windows.cpp | 2 |
3 files changed, 6 insertions, 3 deletions
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<SWindowRule> CConfigManager::getMatchingRules(CWindow* pWindow) { +std::vector<SWindowRule> CConfigManager::getMatchingRules(CWindow* pWindow, bool dynamic) { if (!g_pCompositor->windowValidMapped(pWindow)) return std::vector<SWindowRule>(); @@ -2128,6 +2128,9 @@ std::vector<SWindowRule> 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<SWorkspaceRule>& getAllWorkspaceRules(); - std::vector<SWindowRule> getMatchingRules(CWindow*); + std::vector<SWindowRule> getMatchingRules(CWindow*, bool dynamic = true); std::vector<SLayerRule> getMatchingRules(SLayerSurface*); std::unordered_map<std::string, SMonitorAdditionalReservedArea> 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 || |
