diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index 7404044cd9928aaa7abbec3a376786c3e9418790..3811f0db9446e704bb4c787223724fcb98cb70a9 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.544 2007-09-11 14:01:54 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.545 2007-09-12 06:00:59 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -4210,20 +4210,24 @@ static void _view_reload(int index) return; } + int n = PView::list.size(); + // FIXME: use fileIndex MergeFile((char*)p->getData()->getFileName().c_str()); - // delete old data and replace with new - delete p->getData(); - p->setData(PView::list.back()->getData()); - PView::list.back()->setData(0); - - // delete new view - delete PView::list.back(); - - // in case the reloaded view has a different number of time steps - if(p->getOptions()->TimeStep > p->getData()->getNumTimeSteps() - 1) - p->getOptions()->TimeStep = 0; + if(PView::list.size() > n){ // we loaded a new view + // delete old data and replace with new + delete p->getData(); + p->setData(PView::list.back()->getData()); + PView::list.back()->setData(0); + // delete new view + delete PView::list.back(); + // in case the reloaded view has a different number of time steps + if(p->getOptions()->TimeStep > p->getData()->getNumTimeSteps() - 1) + p->getOptions()->TimeStep = 0; + p->setChanged(true); + WID->update_views(); + } } }