summaryrefslogtreecommitdiff
path: root/src/config/ConfigManager.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-21 17:06:43 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-04-21 17:06:43 +0200
commit064e40d25f1265a2d6f00f37c402e5f9e08954aa (patch)
treef44186686f565906f3c6a22b94ab4d7573f1267b /src/config/ConfigManager.cpp
parent07080498fd050a6a6660eb68c36d12eb3f87a003 (diff)
Added unbind keyword
Diffstat (limited to 'src/config/ConfigManager.cpp')
-rw-r--r--src/config/ConfigManager.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 976c38b5..e80b545d 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -215,6 +215,17 @@ void CConfigManager::handleBind(const std::string& command, const std::string& v
g_pKeybindManager->addKeybind(SKeybind{KEY, MOD, HANDLER, COMMAND});
}
+void CConfigManager::handleUnbind(const std::string& command, const std::string& value) {
+ auto valueCopy = value;
+
+ const auto MOD = g_pKeybindManager->stringToModMask(valueCopy.substr(0, valueCopy.find_first_of(",")));
+ valueCopy = valueCopy.substr(valueCopy.find_first_of(",") + 1);
+
+ const auto KEY = valueCopy;
+
+ g_pKeybindManager->removeKeybind(MOD, KEY);
+}
+
void CConfigManager::handleWindowRule(const std::string& command, const std::string& value) {
const auto RULE = value.substr(0, value.find_first_of(","));
const auto VALUE = value.substr(value.find_first_of(",") + 1);
@@ -271,6 +282,8 @@ std::string CConfigManager::parseKeyword(const std::string& COMMAND, const std::
handleMonitor(COMMAND, VALUE);
} else if (COMMAND == "bind") {
handleBind(COMMAND, VALUE);
+ } else if (COMMAND == "unbind") {
+ handleUnbind(COMMAND, VALUE);
} else if (COMMAND == "workspace") {
handleDefaultWorkspace(COMMAND, VALUE);
} else if (COMMAND == "windowrule") {