diff --git a/src/WindowRule.cpp b/src/WindowRule.cpp index aedaac7..1da1ad7 100644 --- a/src/WindowRule.cpp +++ b/src/WindowRule.cpp @@ -2,13 +2,13 @@ #include "../include/WindowRule.h" std::string WindowRule::toString() { - std::string mode = this->tile ? "tile" : "float"; - - return "windowrule = " + mode + ", onworkspace:" + std::to_string(this->workspaceID); -}; + std::string mode = this->tile ? "tile on" : "float on"; + return "windowrule = " + mode + ", match:workspace " + std::to_string(this->workspaceID); +} WindowRule WindowRule::parse(std::string ruleStr) { WindowRule rule; + // Remove spaces for easier parsing ruleStr.erase(std::remove(ruleStr.begin(), ruleStr.end(), ' '), ruleStr.end()); @@ -17,15 +17,15 @@ WindowRule WindowRule::parse(std::string ruleStr) { if (modePos != std::string::npos) { auto commaPos = ruleStr.find(',', modePos); std::string mode = ruleStr.substr(modePos + 11, commaPos - (modePos + 11)); - rule.tile = (mode == "tile"); + rule.tile = (mode == "tileon"); } // Find workspace - auto wsPos = ruleStr.find("onworkspace:"); + auto wsPos = ruleStr.find("match:workspace"); if (wsPos != std::string::npos) { - std::string wsStr = ruleStr.substr(wsPos + 12); + std::string wsStr = ruleStr.substr(wsPos + 15); rule.workspaceID = std::stoi(wsStr); } return rule; -} \ No newline at end of file +}