From aedd3acf9597e1dc8f1c051b4df11ec905b44e90 Mon Sep 17 00:00:00 2001
From: Laurent Stainier <laurent.stainier@ec-nantes.fr>
Date: Thu, 28 Apr 2011 12:39:51 +0000
Subject: [PATCH] Rewind to first non-empty step.

---
 Fltk/graphicWindow.cpp | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index c5b82d650e..0d30485aca 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -371,8 +371,18 @@ static void status_pause_cb(Fl_Widget *w, void *data)
 static void status_rewind_cb(Fl_Widget *w, void *data)
 {
   if(!CTX::instance()->post.animCycle) {
-    for(unsigned int i = 0; i < PView::list.size(); i++)
-      opt_view_timestep(i, GMSH_SET | GMSH_GUI, 0);
+    for(unsigned int i = 0; i < PView::list.size(); i++) {
+      // skip empty steps
+      int numSteps = (int)opt_view_nb_timestep(i, GMSH_GET, 0);
+      int step = 0;
+      while(step < numSteps){
+	if(PView::list[i]->getData()->hasTimeStep(step))
+	  break;
+	else
+	  step++;
+      }
+      opt_view_timestep(i, GMSH_SET | GMSH_GUI, step);
+    }
   }
   else {
     view_in_cycle = 0;
-- 
GitLab