summaryrefslogtreecommitdiff
path: root/src/managers/KeybindManager.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2025-04-29 18:14:02 +0100
committerVaxry <vaxry@vaxry.net>2025-04-29 18:14:02 +0100
commitb10a43dabc0d65a03a3a169ff292f0f18d9c6640 (patch)
treeba93bdd1b1a1235ae0bd16f7569815dd8d224250 /src/managers/KeybindManager.cpp
parent5bd7ff884dc613ad22ecd227d41ce6ad7ee336df (diff)
windowrules: add noclosefor
fixes #10027
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 {};