summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-02-18 00:13:38 +0000
committerVaxry <vaxry@vaxry.net>2024-02-18 00:13:43 +0000
commit683a4b07c514fa3c13cdf09e475283a69fcc7653 (patch)
treec19583cc0868e061bc8d7c70b5e319425230a0e5 /src
parent5261a8df81c1aad07b582bce82d164801de533b0 (diff)
rules: ignore static tile/float rules in dynamic gets
fixes #4736
Diffstat (limited to 'src')
-rw-r--r--src/config/ConfigManager.cpp5
-rw-r--r--src/config/ConfigManager.hpp2
-rw-r--r--src/events/Windows.cpp2
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 ||