From dd91565488c4f7fd5908f4560f7230f130d827d6 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 20 Oct 2014 11:06:44 +0000
Subject: [PATCH]

---
 Fltk/FlGui.cpp       |  3 +++
 Geo/GModelIO_GEO.cpp | 17 ++++++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/Fltk/FlGui.cpp b/Fltk/FlGui.cpp
index 5f2b0d6194..cd71131573 100644
--- a/Fltk/FlGui.cpp
+++ b/Fltk/FlGui.cpp
@@ -265,6 +265,9 @@ FlGui::FlGui(int argc, char **argv)
     Fl::scheme(CTX::instance()->guiTheme.c_str());
   Fl_Tooltip::size(FL_NORMAL_SIZE);
   Fl_Tooltip::delay(0.5);
+#if defined(__APPLE__)
+  Fl_Tooltip::color(FL_LIGHT2);
+#endif
 
   // register image formats not in core fltk library (jpeg/png)
   fl_register_images();
diff --git a/Geo/GModelIO_GEO.cpp b/Geo/GModelIO_GEO.cpp
index 59d761acc4..37e4400056 100644
--- a/Geo/GModelIO_GEO.cpp
+++ b/Geo/GModelIO_GEO.cpp
@@ -48,13 +48,18 @@ int GModel::readGEO(const std::string &name)
 
 int GModel::exportDiscreteGEOInternals()
 {
-  if(_geo_internals) delete _geo_internals;
+  int maxv = 1;
+
+  if(_geo_internals){
+    maxv = _geo_internals->MaxVolumeNum;
+    delete _geo_internals;
+  }
   _geo_internals = new GEO_Internals;
 
   for(viter it = firstVertex(); it != lastVertex(); it++){
     Vertex *v = Create_Vertex((*it)->tag(), (*it)->x(), (*it)->y(), (*it)->z(),
                               (*it)->prescribedMeshSizeAtVertex(), 1.0);
-    Tree_Add(this->getGEOInternals()->Points, &v);
+    Tree_Add(_geo_internals->Points, &v);
   }
 
   for(eiter it = firstEdge(); it != lastEdge(); it++){
@@ -79,7 +84,7 @@ int GModel::exportDiscreteGEOInternals()
         }
       }
       End_Curve(c);
-      Tree_Add(this->getGEOInternals()->Curves, &c);
+      Tree_Add(_geo_internals->Curves, &c);
       CreateReversedCurve(c);
       List_Delete(points);
     }
@@ -100,12 +105,14 @@ int GModel::exportDiscreteGEOInternals()
           }
         }
       }
-      Tree_Add(this->getGEOInternals()->Surfaces, &s);
+      Tree_Add(_geo_internals->Surfaces, &s);
       List_Delete(curves);
     }
   }
 
-  // TODO: create Volumes from discreteRegions
+  // TODO: create Volumes from discreteRegions ; meanwhile, keep track of
+  // maximum volume num so that we don't break later operations:
+  _geo_internals->MaxVolumeNum = maxv;
 
   Msg::Debug("Geo internal model has:");
   Msg::Debug("%d Vertices", Tree_Nbr(_geo_internals->Points));
-- 
GitLab