diff options
Diffstat (limited to 'src/managers/KeybindManager.cpp')
| -rw-r--r-- | src/managers/KeybindManager.cpp | 6 |
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 {}; |
