From 95de88ec8378e3847e55fb390ac55dee94b8d89f Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Thu, 8 May 2014 18:37:21 +0000
Subject: [PATCH] use step(a, 1) to prevent rounding of step value to zero is
 smaller than 1e-10

---
 Fltk/clippingWindow.cpp   |  4 ++--
 Fltk/helpWindow.cpp       |  2 +-
 Fltk/inputRange.h         |  8 ++++----
 Fltk/manipWindow.cpp      |  2 +-
 Fltk/onelabGroup.cpp      |  2 +-
 Fltk/optionWindow.cpp     | 10 +++++-----
 Fltk/pluginWindow.cpp     |  2 +-
 Fltk/projectionEditor.cpp |  6 +++---
 8 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/Fltk/clippingWindow.cpp b/Fltk/clippingWindow.cpp
index 2e3e303eb2..da504cc56a 100644
--- a/Fltk/clippingWindow.cpp
+++ b/Fltk/clippingWindow.cpp
@@ -321,14 +321,14 @@ void clippingWindow::resetBrowser()
                                    fabs(CTX::instance()->max[i])));
   val1 *= 1.5;
 
-  plane[3]->step(val1 / 200.);
+  plane[3]->step(val1 / 200., 1);
   plane[3]->minimum(-val1);
   plane[3]->maximum(val1);
 
   fillBoxValuesFromPlaneValues();
 
   for(int i = 0; i < 6; i++){
-    box[i]->step(val1 / 200.);
+    box[i]->step(val1 / 200., 1);
     box[i]->minimum(-val1);
     box[i]->maximum(val1);
   }
diff --git a/Fltk/helpWindow.cpp b/Fltk/helpWindow.cpp
index d470cbfd09..af46e3daa3 100644
--- a/Fltk/helpWindow.cpp
+++ b/Fltk/helpWindow.cpp
@@ -81,7 +81,7 @@ double numberOrStringOptionChooser(const std::string &category, int index,
       d.name = name;
       number->minimum(minimum);
       number->maximum(maximum);
-      number->step(step);
+      number->step(step, 1);
       number->callback(interactive_cb, (void*)&d);
       number->when(FL_WHEN_RELEASE);
     }
diff --git a/Fltk/inputRange.h b/Fltk/inputRange.h
index de2c26652b..b878918d19 100644
--- a/Fltk/inputRange.h
+++ b/Fltk/inputRange.h
@@ -41,7 +41,7 @@ class inputRange : public Fl_Group {
       if(_choices.size() > 1){
         _input->minimum(_choices[0]);
         _input->maximum(_choices[_choices.size() - 1]);
-        _input->step(_choices[1] - _choices[0]);
+        _input->step(_choices[1] - _choices[0], 1);
       }
       _step = 0.;
     }
@@ -58,7 +58,7 @@ class inputRange : public Fl_Group {
       }
       if(_step == 0.) _step = 1.;
       if(_step != 1.) tmp << " : " << _step;
-      _input->step(_step);
+      _input->step(_step, 1);
       _choices.clear();
     }
     _range = tmp.str();
@@ -88,7 +88,7 @@ class inputRange : public Fl_Group {
       if(_choices.size() > 1){
         _input->minimum(_choices[0]);
         _input->maximum(_choices[_choices.size() - 1]);
-        _input->step(_choices[1] - _choices[0]);
+        _input->step(_choices[1] - _choices[0], 1);
       }
       _step = 0.;
     }
@@ -121,7 +121,7 @@ class inputRange : public Fl_Group {
         _step = atof(step.c_str());
       else
         _step = 1.;
-      _input->step(_step);
+      _input->step(_step, 1);
       _choices.clear();
     }
   }
diff --git a/Fltk/manipWindow.cpp b/Fltk/manipWindow.cpp
index 9a742f25e0..d3b457b9bc 100644
--- a/Fltk/manipWindow.cpp
+++ b/Fltk/manipWindow.cpp
@@ -123,7 +123,7 @@ void manipWindow::update(bool force)
       value[i]->step(1.);
       value[i+3]->minimum(-val1);
       value[i+3]->maximum(val1);
-      value[i+3]->step(val1 / 200.);
+      value[i+3]->step(val1 / 200., 1);
       value[i+6]->minimum(0.01);
       value[i+6]->maximum(100.);
       value[i+6]->step(0.01);
diff --git a/Fltk/onelabGroup.cpp b/Fltk/onelabGroup.cpp
index 7fe5b1ac7d..44f15125f0 100644
--- a/Fltk/onelabGroup.cpp
+++ b/Fltk/onelabGroup.cpp
@@ -855,7 +855,7 @@ void onelab_cb(Fl_Widget *w, void *data)
     if(fileChooser(FILE_CHOOSER_SINGLE, "Load", "*.db", db.c_str()))
       loadDb(fileChooserGetName(1));
 
-    // switch to "restore" mode" 
+    // switch to "restore" mode"
     // (the metamodel will use archived solution files)
     std::vector<onelab::number> pn;
     onelab::server::instance()->get(pn,"0Metamodel/9Use restored solution");
diff --git a/Fltk/optionWindow.cpp b/Fltk/optionWindow.cpp
index 3634680baf..00b49ae3da 100644
--- a/Fltk/optionWindow.cpp
+++ b/Fltk/optionWindow.cpp
@@ -3636,7 +3636,7 @@ void optionWindow::updateViewGroup(int index)
   opt_view_axes_zmin(index, GMSH_GUI, 0);
   opt_view_axes_zmax(index, GMSH_GUI, 0);
   for(int i = 13; i <= 18; i++){
-    view.value[i]->step(CTX::instance()->lc / 200.);
+    view.value[i]->step(CTX::instance()->lc / 200., 1);
     view.value[i]->minimum(-CTX::instance()->lc);
     view.value[i]->maximum(CTX::instance()->lc);
   }
@@ -3685,7 +3685,7 @@ void optionWindow::updateViewGroup(int index)
   opt_view_offset1(index, GMSH_GUI, 0);
   opt_view_offset2(index, GMSH_GUI, 0);
   for(int i = 40; i <= 42; i++) {
-    view.value[i]->step(val1 / 200.);
+    view.value[i]->step(val1 / 200., 1);
     view.value[i]->minimum(-val1);
     view.value[i]->maximum(val1);
   }
@@ -3703,7 +3703,7 @@ void optionWindow::updateViewGroup(int index)
   opt_view_raise2(index, GMSH_GUI, 0);
   opt_view_normal_raise(index, GMSH_GUI, 0);
   for(int i = 43; i <= 46; i++) {
-    view.value[i]->step(val2 / 200.);
+    view.value[i]->step(val2 / 200., 1);
     view.value[i]->minimum(-val2);
     view.value[i]->maximum(val2);
   }
@@ -3713,7 +3713,7 @@ void optionWindow::updateViewGroup(int index)
   opt_view_gen_raise0(index, GMSH_GUI, "");
   opt_view_gen_raise1(index, GMSH_GUI, "");
   opt_view_gen_raise2(index, GMSH_GUI, "");
-  view.value[2]->step(val2 / 200.);
+  view.value[2]->step(val2 / 200., 1);
   view.value[2]->minimum(-val2);
   view.value[2]->maximum(val2);
 
@@ -3753,7 +3753,7 @@ void optionWindow::updateViewGroup(int index)
 
   opt_view_displacement_factor(index, GMSH_GUI, 0);
   double val3 = 2. * CTX::instance()->lc / maxval;
-  view.value[63]->step(val3 / 100.);
+  view.value[63]->step(val3 / 100., 1);
   view.value[63]->maximum(val3);
 
   opt_view_external_view(index, GMSH_GUI, 0);
diff --git a/Fltk/pluginWindow.cpp b/Fltk/pluginWindow.cpp
index 316b55ebab..a448d99e66 100644
--- a/Fltk/pluginWindow.cpp
+++ b/Fltk/pluginWindow.cpp
@@ -91,7 +91,7 @@ static void plugin_browser_cb(Fl_Widget *w, void *data)
     if(sxn->function){
       p->dialogBox->value[i]->callback(plugin_input_value_cb, (void*)sxn->function);
       if(iView >= 0){
-        p->dialogBox->value[i]->step(sxn->function(iView, 1, 0.));
+        p->dialogBox->value[i]->step(sxn->function(iView, 1, 0.), 1);
         p->dialogBox->value[i]->minimum(sxn->function(iView, 2, 0.));
         p->dialogBox->value[i]->maximum(sxn->function(iView, 3, 0.));
       }
diff --git a/Fltk/projectionEditor.cpp b/Fltk/projectionEditor.cpp
index 33b4b42798..1c5f905321 100644
--- a/Fltk/projectionEditor.cpp
+++ b/Fltk/projectionEditor.cpp
@@ -808,7 +808,7 @@ projection::projection(fourierProjectionFace *f, int x, int y, int w, int h,
       parameters.push_back(v);
       v->maximum(bounds.max()[i] + 10. * CTX::instance()->lc);
       v->minimum(bounds.min()[i] - 10. * CTX::instance()->lc);
-      v->step(CTX::instance()->lc / 100.);
+      v->step(CTX::instance()->lc / 100., 1);
       v->value(pc[i]);
       v->label((i == 0) ? "X" : (i == 1) ? "Y" : "Z");
     }
@@ -858,7 +858,7 @@ projection::projection(fourierProjectionFace *f, int x, int y, int w, int h,
       parameters.push_back(v);
       v->maximum(CTX::instance()->lc * 10.);
       v->minimum(CTX::instance()->lc / 100.);
-      v->step(CTX::instance()->lc / 100.);
+      v->step(CTX::instance()->lc / 100., 1);
       v->value(CTX::instance()->lc / 10.);
       v->label((i == 0) ? "Scale0" : (i == 1) ? "Scale1" : "Scale2");
     }
@@ -869,7 +869,7 @@ projection::projection(fourierProjectionFace *f, int x, int y, int w, int h,
     Fl_Value_Input *v = new Fl_Value_Input(x, y + (9 + i) * bh, bb, bh);
     v->maximum(10. * CTX::instance()->lc);
     v->minimum(-10. * CTX::instance()->lc);
-    v->step(CTX::instance()->lc / 100.);
+    v->step(CTX::instance()->lc / 100., 1);
     v->label(strdup(ps->GetLabel(i).c_str()));
     v->value(ps->GetParameter(i));
     parameters.push_back(v);
-- 
GitLab