소스 검색

ctkVTK*View freeze after call forceRender() on invisible widget

The flag RenderPending couldn't be reset if forceRender() was called with
RenderEnabled being false or the widget is invisible (scheduleRender()
 always exit because of the flag).
Julien Finet 14 년 전
부모
커밋
41041a4989
2개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 1
      Libs/Visualization/VTK/Widgets/ctkVTKRenderView.cpp
  2. 1 1
      Libs/Visualization/VTK/Widgets/ctkVTKSliceView.cpp

+ 1 - 1
Libs/Visualization/VTK/Widgets/ctkVTKRenderView.cpp

@@ -267,6 +267,7 @@ void ctkVTKRenderView::forceRender()
 {
   Q_D(ctkVTKRenderView);
 
+  d->RenderPending = false;
   logger.trace(QString("forceRender - RenderEnabled: %1")
                .arg(d->RenderEnabled ? "true" : "false"));
 
@@ -275,7 +276,6 @@ void ctkVTKRenderView::forceRender()
     return;
     }
   d->RenderWindow->Render();
-  d->RenderPending = false;
 }
 
 //----------------------------------------------------------------------------

+ 1 - 1
Libs/Visualization/VTK/Widgets/ctkVTKSliceView.cpp

@@ -137,13 +137,13 @@ void ctkVTKSliceView::scheduleRender()
 void ctkVTKSliceView::forceRender()
 {
   Q_D(ctkVTKSliceView);
+  d->RenderPending = false;
   if (!d->RenderEnabled  || !this->isVisible())
     {
     return;
     }
   logger.trace("forceRender");
   d->RenderWindow->Render();
-  d->RenderPending = false;
 }
 
 //----------------------------------------------------------------------------