]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Avoid blinking on the Redo functionality
authornds <natalia.donis@opencascade.com>
Thu, 2 Apr 2015 14:34:10 +0000 (17:34 +0300)
committernds <natalia.donis@opencascade.com>
Thu, 2 Apr 2015 14:34:10 +0000 (17:34 +0300)
src/XGUI/XGUI_Workshop.cpp

index 5a6992d57646986c588f4211bba049ae6430f571..027248cba7cc970790c1227faadc9975ff867ed2 100644 (file)
@@ -998,6 +998,12 @@ void XGUI_Workshop::onUndo(int theTimes)
 //******************************************************
 void XGUI_Workshop::onRedo(int theTimes)
 {
+  // the viewer update should be blocked in order to avoid the features blinking. For the created
+  // feature a results are created, the flush of the created signal caused the viewer redisplay for
+  // each created result. After a redisplay signal is flushed. So, the viewer update is blocked until
+  // redo of all possible objects happens
+  bool isUpdateEnabled = myDisplayer->enableUpdateViewer(false);
+
   objectBrowser()->treeView()->setCurrentIndex(QModelIndex());
   SessionPtr aMgr = ModelAPI_Session::get();
   if (aMgr->isOperation())
@@ -1006,6 +1012,10 @@ void XGUI_Workshop::onRedo(int theTimes)
     aMgr->redo();
   }
   updateCommandStatus();
+
+  // unblock the viewer update functionality and make update on purpose
+  myDisplayer->enableUpdateViewer(isUpdateEnabled);
+  myDisplayer->updateViewer();
 }
 
 //******************************************************