summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers/KeybindManager.cpp')
-rw-r--r--src/managers/KeybindManager.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index f30f65a1..7f0045e0 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -1037,6 +1037,9 @@ SDispatchResult CKeybindManager::killActive(std::string args) {
}
SDispatchResult CKeybindManager::closeActive(std::string args) {
+ if (g_pCompositor->m_lastWindow && g_pCompositor->m_lastWindow->m_closeableSince > Time::steadyNow())
+ return {.success = false, .error = "can't close window, it's not closeable yet (noclosefor)"};
+
g_pCompositor->closeWindow(g_pCompositor->m_lastWindow.lock());
return {};
@@ -1050,6 +1053,9 @@ SDispatchResult CKeybindManager::closeWindow(std::string args) {
return {.success = false, .error = "closeWindow: no window found"};
}
+ if (PWINDOW->m_closeableSince > Time::steadyNow())
+ return {.success = false, .error = "can't close window, it's not closeable yet (noclosefor)"};
+
g_pCompositor->closeWindow(PWINDOW);
return {};