diff options
Diffstat (limited to 'src/config/ConfigManager.cpp')
| -rw-r--r-- | src/config/ConfigManager.cpp | 15 |
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 |
