]> SALOME platform Git repositories - modules/geom.git/blobdiff - src/GEOMGUI/GEOMGUI_OCCSelector.cxx
Salome HOME
NPAL17269: Merge from 3.2.X.
[modules/geom.git] / src / GEOMGUI / GEOMGUI_OCCSelector.cxx
index 26c475ec3b0d53aa12cafe900fcfcd3f440642f4..0452e97bae8391b02ba2b239f5e519dd7162ffc3 100644 (file)
@@ -314,7 +314,10 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
   vw->unHighlightAll( false );
 
   // DO the selection
-  for  ( int i = 1, n = ownersmap.Extent(); i <= n; i++ )
+  int i = 1, n = ownersmap.Extent();
+  bool isAutoHilight = ic->AutomaticHilight();
+  ic->SetAutomaticHilight(Standard_False); //Bug 17269: for better performance
+  for  (; i <= n; i++)
   {
     Handle(SelectMgr_EntityOwner) owner = ownersmap( i );
     if ( owner->State() )
@@ -325,8 +328,11 @@ void GEOMGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList )
     else
       ic->AddOrRemoveSelected( Handle(AIS_InteractiveObject)::DownCast(owner->Selectable()), false );
   }
-
-  vw->update();
+  ic->SetAutomaticHilight(isAutoHilight); //Bug 17269: restore mode
+  if (n < 3000)
+    ic->HilightSelected(/*updateviewer*/Standard_True);
+  else
+    vw->update();
 
   // fill extra selected
   mySelectedExternals.clear();