summaryrefslogtreecommitdiff
path: root/src/managers
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers')
-rw-r--r--src/managers/KeybindManager.cpp2
-rw-r--r--src/managers/input/InputManager.cpp3
-rw-r--r--src/managers/input/InputManager.hpp2
3 files changed, 6 insertions, 1 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 1fc8a679..ead94ed9 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -1455,7 +1455,7 @@ void CKeybindManager::renameWorkspace(std::string args) {
}
void CKeybindManager::exitHyprland(std::string argz) {
- g_pCompositor->cleanup();
+ g_pInputManager->m_bExitTriggered = true;
}
void CKeybindManager::moveCurrentWorkspaceToMonitor(std::string args) {
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp
index ce7e2b30..5a98accb 100644
--- a/src/managers/input/InputManager.cpp
+++ b/src/managers/input/InputManager.cpp
@@ -1185,6 +1185,9 @@ void CInputManager::onKeyboardKey(wlr_keyboard_key_event* e, SKeyboard* pKeyboar
updateKeyboardsLeds(pKeyboard->keyboard);
}
+
+ if (m_bExitTriggered)
+ g_pCompositor->cleanup();
}
void CInputManager::onKeyboardMod(void* data, SKeyboard* pKeyboard) {
diff --git a/src/managers/input/InputManager.hpp b/src/managers/input/InputManager.hpp
index 5fa5824e..eec45eff 100644
--- a/src/managers/input/InputManager.hpp
+++ b/src/managers/input/InputManager.hpp
@@ -243,6 +243,8 @@ class CInputManager {
void restoreCursorIconToApp(); // no-op if restored
+ bool m_bExitTriggered = false; // for exit dispatcher
+
friend class CKeybindManager;
friend class CWLSurface;
};