From ce437a9f211631322c4d8d3264beab35a413b32c Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Wed, 24 Oct 2012 13:19:13 +0000
Subject: [PATCH] better handling of reset

---
 Common/onelabUtils.cpp | 10 ++++++++--
 Fltk/onelabWindow.cpp  |  2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/Common/onelabUtils.cpp b/Common/onelabUtils.cpp
index a5015016fd..c46c1e8020 100644
--- a/Common/onelabUtils.cpp
+++ b/Common/onelabUtils.cpp
@@ -276,12 +276,18 @@ namespace onelabUtils {
 
     onelab::client *c = it->second;
     std::string mshFileName = onelabUtils::getMshFileName(c);
-    if(action == "initialize") return redraw;
 
     static std::string modelName = GModel::current()->getName();
     static bool firstComputation = true;
 
-    if(action == "check"){
+    if(action == "initialize"){
+      // nothing to do
+    }
+    else if(action == "reset"){
+      firstComputation = false;
+      OpenProject(GModel::current()->getFileName());
+    }
+    else if(action == "check"){
       if(onelab::server::instance()->getChanged("Gmsh") ||
          modelName != GModel::current()->getName()){
         // reload geometry if Gmsh parameters have been modified or if the model
diff --git a/Fltk/onelabWindow.cpp b/Fltk/onelabWindow.cpp
index a55cc8eaab..ff1b71cdfe 100644
--- a/Fltk/onelabWindow.cpp
+++ b/Fltk/onelabWindow.cpp
@@ -523,7 +523,7 @@ void onelab_cb(Fl_Widget *w, void *data)
     onelab::server::instance()->clear();
     if(onelab::server::instance()->findClient("Gmsh") !=
        onelab::server::instance()->lastClient())
-      geometry_reload_cb(0, 0);
+      onelabUtils::runGmshClient(action, CTX::instance()->solver.autoMesh);
     for(unsigned int i = 0; i < useCommandLines.size(); i++)
       onelab::server::instance()->set(useCommandLines[i]);
     for(unsigned int i = 0; i < guessModelNames.size(); i++)
-- 
GitLab