summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/managers/KeybindManager.cpp12
-rw-r--r--src/managers/KeybindManager.hpp1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 04cc0d9b..5d791004 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -7,6 +7,7 @@ CKeybindManager::CKeybindManager() {
m_mDispatchers["exec"] = spawn;
m_mDispatchers["killactive"] = killActive;
+ m_mDispatchers["closewindow"] = kill;
m_mDispatchers["togglefloating"] = toggleActiveFloating;
m_mDispatchers["workspace"] = changeworkspace;
m_mDispatchers["fullscreen"] = fullscreenActive;
@@ -475,6 +476,17 @@ void CKeybindManager::killActive(std::string args) {
g_pCompositor->closeWindow(g_pCompositor->m_pLastWindow);
}
+void CKeybindManager::kill(std::string args) {
+ const auto PWINDOW = g_pCompositor->getWindowByRegex(args);
+
+ if (!PWINDOW) {
+ Debug::log(ERR, "kill: no window found");
+ return;
+ }
+
+ g_pCompositor->closeWindow(PWINDOW);
+}
+
void CKeybindManager::clearKeybinds() {
m_lKeybinds.clear();
}
diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp
index d3afe9dd..2431d2f9 100644
--- a/src/managers/KeybindManager.hpp
+++ b/src/managers/KeybindManager.hpp
@@ -78,6 +78,7 @@ private:
// -------------- Dispatchers -------------- //
static void killActive(std::string);
+ static void kill(std::string);
static void spawn(std::string);
static void toggleActiveFloating(std::string);
static void toggleActivePseudo(std::string);