rules: ignore static tile/float rules in dynamic gets

fixes #4736
This commit is contained in:
Vaxry 2024-02-18 00:13:38 +00:00
parent 5261a8df81
commit 683a4b07c5
3 changed files with 6 additions and 3 deletions

View file

@ -2002,7 +2002,7 @@ SWorkspaceRule CConfigManager::getWorkspaceRuleFor(CWorkspace* pWorkspace) {
return *IT; return *IT;
} }
std::vector<SWindowRule> CConfigManager::getMatchingRules(CWindow* pWindow) { std::vector<SWindowRule> CConfigManager::getMatchingRules(CWindow* pWindow, bool dynamic) {
if (!g_pCompositor->windowValidMapped(pWindow)) if (!g_pCompositor->windowValidMapped(pWindow))
return std::vector<SWindowRule>(); return std::vector<SWindowRule>();
@ -2128,6 +2128,9 @@ std::vector<SWindowRule> CConfigManager::getMatchingRules(CWindow* pWindow) {
returns.push_back(rule); returns.push_back(rule);
if (dynamic)
continue;
if (rule.szRule == "float") if (rule.szRule == "float")
hasFloating = true; hasFloating = true;
else if (rule.szRule == "fullscreen") else if (rule.szRule == "fullscreen")

View file

@ -120,7 +120,7 @@ class CConfigManager {
std::string getBoundMonitorStringForWS(const std::string&); std::string getBoundMonitorStringForWS(const std::string&);
const std::deque<SWorkspaceRule>& getAllWorkspaceRules(); const std::deque<SWorkspaceRule>& getAllWorkspaceRules();
std::vector<SWindowRule> getMatchingRules(CWindow*); std::vector<SWindowRule> getMatchingRules(CWindow*, bool dynamic = true);
std::vector<SLayerRule> getMatchingRules(SLayerSurface*); std::vector<SLayerRule> getMatchingRules(SLayerSurface*);
std::unordered_map<std::string, SMonitorAdditionalReservedArea> m_mAdditionalReservedAreas; std::unordered_map<std::string, SMonitorAdditionalReservedArea> m_mAdditionalReservedAreas;

View file

@ -101,7 +101,7 @@ void Events::listener_mapWindow(void* owner, void* data) {
} }
// window rules // window rules
const auto WINDOWRULES = g_pConfigManager->getMatchingRules(PWINDOW); const auto WINDOWRULES = g_pConfigManager->getMatchingRules(PWINDOW, false);
std::string requestedWorkspace = ""; std::string requestedWorkspace = "";
bool workspaceSilent = false; bool workspaceSilent = false;
bool requestsFullscreen = PWINDOW->m_bWantsInitialFullscreen || bool requestsFullscreen = PWINDOW->m_bWantsInitialFullscreen ||