diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp index a2642fb3dfbf0ba97ef82506080a940f8a0c318a..867ebbae9b6c03d5704789244690c768c1ffc131 100644 --- a/Fltk/graphicWindow.cpp +++ b/Fltk/graphicWindow.cpp @@ -235,11 +235,13 @@ void status_play_manual(int time, int step) // skip any empty steps (useful when merging only some steps) int newStep = (int)opt_view_timestep(i, GMSH_GET, 0) + step; int totalSteps = (int)opt_view_nb_timestep(i, GMSH_GET, 0); - while(newStep < totalSteps){ + for(int j = 0; j < totalSteps; j++){ if(PView::list[i]->getData()->hasTimeStep(newStep)) break; else newStep += step; + if(newStep < 0) newStep = totalSteps - 1; + if(newStep > totalSteps - 1) newStep = 0; } opt_view_timestep(i, GMSH_SET | GMSH_GUI, newStep); } diff --git a/Post/PViewDataGModel.cpp b/Post/PViewDataGModel.cpp index e39342e480beec0be353bb968ddc7a34083af38a..d915edf87e218596d318393ebf1951da3e897367 100644 --- a/Post/PViewDataGModel.cpp +++ b/Post/PViewDataGModel.cpp @@ -489,7 +489,8 @@ bool PViewDataGModel::skipElement(int step, int ent, int ele, bool checkVisibili bool PViewDataGModel::hasTimeStep(int step) { - if(step < getNumTimeSteps() && _steps[step]->getNumData()) return true; + if(step >= 0 && step < getNumTimeSteps() && _steps[step]->getNumData()) + return true; return false; }