diff --git a/Fltk/onelabGroup.cpp b/Fltk/onelabGroup.cpp index 44f15125f02230dd4ae76b5dcf3ec241710c0694..9d06327281da26154a69f6d096e9de3a486b6b8a 100644 --- a/Fltk/onelabGroup.cpp +++ b/Fltk/onelabGroup.cpp @@ -909,16 +909,14 @@ void onelab_cb(Fl_Widget *w, void *data) onelab::server::instance()->set(o); c->run(); if(action == "compute"){ + // after computing with this solver, mark the parameters exclusively + // owned by this solver as unchanged + onelab::server::instance()->setChanged(false, c->getName()); FlGui::instance()->onelab->checkForErrors(c->getName()); } if(FlGui::instance()->onelab->stop()) break; } - // after computing, all parameters are set unchanged - if(action == "compute"){ - onelab::server::instance()->setChanged(false); - } - if(action != "initialize"){ updateGraphs(); FlGui::instance()->rebuildTree(action == "compute"); @@ -927,6 +925,11 @@ void onelab_cb(Fl_Widget *w, void *data) } while(action == "compute" && !FlGui::instance()->onelab->stop() && incrementLoops()); + if(action == "compute"){ + // the computation is done; mark all parameters as unchanged + onelab::server::instance()->setChanged(false); + } + if(action == "compute" && (CTX::instance()->solver.autoSaveDatabase || CTX::instance()->solver.autoArchiveOutputFiles)){ std::string db = SplitFileName(GModel::current()->getFileName())[0] + "onelab.db";