summaryrefslogtreecommitdiff
path: root/src/config/ConfigManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/config/ConfigManager.cpp')
-rw-r--r--src/config/ConfigManager.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 97dae134..6d37c97b 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -263,7 +263,7 @@ void CConfigManager::parseLine(std::string& line) {
return;
} else if (COMMAND == "exec-once") {
if (isFirstLaunch) {
- handleRawExec(COMMAND, VALUE);
+ firstExecRequests.push_back(VALUE);
}
return;
} else if (COMMAND == "monitor") {
@@ -478,4 +478,17 @@ std::vector<SWindowRule> CConfigManager::getMatchingRules(CWindow* pWindow) {
}
return returns;
+}
+
+void CConfigManager::dispatchExecOnce() {
+ if (firstExecDispatched || isFirstLaunch)
+ return;
+
+ firstExecDispatched = true;
+
+ for (auto& c : firstExecRequests) {
+ handleRawExec("", c);
+ }
+
+ firstExecRequests.clear(); // free some kb of memory :P
} \ No newline at end of file