mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-23 01:46:00 +01:00
added unset rules
This commit is contained in:
parent
47512dd6db
commit
97af7c416e
1 changed files with 35 additions and 1 deletions
|
@ -781,6 +781,13 @@ void CConfigManager::handleWindowRule(const std::string& command, const std::str
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (RULE == "unset") {
|
||||||
|
std::erase_if(m_dWindowRules, [&] (const SWindowRule& other) {
|
||||||
|
return other.szValue == VALUE;
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// verify we support a rule
|
// verify we support a rule
|
||||||
if (!windowRuleValid(RULE)) {
|
if (!windowRuleValid(RULE)) {
|
||||||
Debug::log(ERR, "Invalid rule found: %s", RULE.c_str());
|
Debug::log(ERR, "Invalid rule found: %s", RULE.c_str());
|
||||||
|
@ -795,7 +802,7 @@ void CConfigManager::handleWindowRuleV2(const std::string& command, const std::s
|
||||||
const auto RULE = value.substr(0, value.find_first_of(","));
|
const auto RULE = value.substr(0, value.find_first_of(","));
|
||||||
const auto VALUE = value.substr(value.find_first_of(",") + 1);
|
const auto VALUE = value.substr(value.find_first_of(",") + 1);
|
||||||
|
|
||||||
if (!windowRuleValid(RULE)) {
|
if (!windowRuleValid(RULE) && RULE != "unset") {
|
||||||
Debug::log(ERR, "Invalid rulev2 found: %s", RULE.c_str());
|
Debug::log(ERR, "Invalid rulev2 found: %s", RULE.c_str());
|
||||||
parseError = "Invalid rulev2 found: " + RULE;
|
parseError = "Invalid rulev2 found: " + RULE;
|
||||||
return;
|
return;
|
||||||
|
@ -854,6 +861,33 @@ void CConfigManager::handleWindowRuleV2(const std::string& command, const std::s
|
||||||
rule.bFloating = extract(FLOATPOS + 9) == "1" ? 1 : 0;
|
rule.bFloating = extract(FLOATPOS + 9) == "1" ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (RULE == "unset") {
|
||||||
|
std::erase_if(m_dWindowRules, [&](const SWindowRule& other) {
|
||||||
|
if (!other.v2) {
|
||||||
|
return other.szClass == rule.szClass && !rule.szClass.empty();
|
||||||
|
} else {
|
||||||
|
if (!rule.szClass.empty() && rule.szClass != other.szClass) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!rule.szTitle.empty() && rule.szTitle != other.szTitle) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rule.bX11 != -1 && rule.bX11 != other.bX11) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rule.bFloating != -1 && rule.bFloating != other.bFloating) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
m_dWindowRules.push_back(rule);
|
m_dWindowRules.push_back(rule);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue