From ab8409da4137c5a328419c3cfed6a691aa395e5e Mon Sep 17 00:00:00 2001 From: Ken Taylor <taylork@alum.mit.edu> Date: Fri, 1 Jul 2016 22:14:41 -0700 Subject: [PATCH] Always reload input config after running onfinish script --- es-core/src/InputManager.cpp | 4 ++++ es-core/src/guis/GuiDetectDevice.cpp | 1 - es-core/src/guis/GuiInputConfig.cpp | 3 +-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/es-core/src/InputManager.cpp b/es-core/src/InputManager.cpp index 81bbb5770..04ca79364 100644 --- a/es-core/src/InputManager.cpp +++ b/es-core/src/InputManager.cpp @@ -348,6 +348,10 @@ void InputManager::writeDeviceConfig(InputConfig* config) config->writeToXML(root); doc.save_file(path.c_str()); + + // execute any onFinish commands and re-load the config for changes + doOnFinish(); + loadInputConfig(config); } void InputManager::doOnFinish() diff --git a/es-core/src/guis/GuiDetectDevice.cpp b/es-core/src/guis/GuiDetectDevice.cpp index b7fae1365..bf8e8e4cb 100644 --- a/es-core/src/guis/GuiDetectDevice.cpp +++ b/es-core/src/guis/GuiDetectDevice.cpp @@ -107,7 +107,6 @@ void GuiDetectDevice::update(int deltaTime) // If ES starts and if a known device is connected after startup skip controller configuration if(mFirstRun && fs::exists(InputManager::getConfigPath()) && InputManager::getInstance()->getNumConfiguredDevices() > 0) { - InputManager::getInstance()->doOnFinish(); // execute possible onFinish commands if(mDoneCallback) mDoneCallback(); delete this; // delete GUI element diff --git a/es-core/src/guis/GuiInputConfig.cpp b/es-core/src/guis/GuiInputConfig.cpp index 78f598ff1..f03144e11 100644 --- a/es-core/src/guis/GuiInputConfig.cpp +++ b/es-core/src/guis/GuiInputConfig.cpp @@ -259,7 +259,6 @@ GuiInputConfig::GuiInputConfig(Window* window, InputConfig* target, bool reconfi std::vector< std::shared_ptr<ButtonComponent> > buttons; buttons.push_back(std::make_shared<ButtonComponent>(mWindow, "OK", "ok", [this, okCallback] { InputManager::getInstance()->writeDeviceConfig(mTargetConfig); // save - InputManager::getInstance()->doOnFinish(); // execute possible onFinish commands if(okCallback) okCallback(); delete this; @@ -388,4 +387,4 @@ bool GuiInputConfig::assign(Input input, int inputId) void GuiInputConfig::clearAssignment(int inputId) { mTargetConfig->unmapInput(inputName[inputId]); -} \ No newline at end of file +}