Handle(V3d_View) aView = ViewerTest_myViews.Find1(theViewName);
Handle(AIS_InteractiveContext) aCurrentContext = FindContextByView(aView);
ViewerTest_ContinuousRedrawer& aRedrawer = ViewerTest_ContinuousRedrawer::Instance();
- aRedrawer.Stop (aView->Window());
+ aRedrawer.Stop (aView);
// Remove view resources
ViewerTest_myViews.UnBind1(theViewName);
// unused empty contexts
if (!aCurrentContext.IsNull())
{
- // Check if there are more difined views in the viewer
+ // Check if there are more defined views in the viewer
if ((isContextRemoved || ViewerTest_myContexts.Size() != 1)
&& aCurrentContext->CurrentViewer()->DefinedViews().IsEmpty())
{
}
ViewerTest_ContinuousRedrawer& aRedrawer = ViewerTest_ContinuousRedrawer::Instance();
- if (Abs (aFps) >= 1.0)
+ ViewerTest::CurrentEventManager()->SetContinuousRedraw (false);
+ if (aFps >= 1.0)
{
- aRedrawer.Start (aView->Window(), aFps);
+ aRedrawer.Start (aView, aFps);
+ }
+ else if (aFps < 0.0)
+ {
+ if (ViewerTest::GetViewerFromContext()->ActiveViews().Extent() == 1)
+ {
+ aRedrawer.Stop();
+ ViewerTest::CurrentEventManager()->SetContinuousRedraw (true);
+ ViewerTest::CurrentEventManager()->FlushViewEvents (ViewerTest::GetAISContext(), ViewerTest::CurrentView(), true);
+ continue;
+ }
+ aRedrawer.Start (aView, aFps);
}
else
{