]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/XGUI/XGUI_SelectionMgr.cpp
Salome HOME
1. Check the owner is already selected and do not call for it AddOrRemoveSelected,
[modules/shaper.git] / src / XGUI / XGUI_SelectionMgr.cpp
index 94c8462678eb96a170794f0b2afc83cf2dc4606c..b0d22089f8c3da6c6c7fe48836be2822bbe9225d 100644 (file)
@@ -44,9 +44,16 @@ void XGUI_SelectionMgr::connectViewers()
 void XGUI_SelectionMgr::setSelectedOwners(const SelectMgr_IndexedMapOfOwner& theSelectedOwners,
                                           bool isUpdateViewer)
 {
+  SelectMgr_IndexedMapOfOwner aSelectedOwners;
+  selection()->selectedOwners(aSelectedOwners);
+
   Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext();
   for  (Standard_Integer i = 1, n = theSelectedOwners.Extent(); i <= n; i++)  {
-    aContext->AddOrRemoveSelected(theSelectedOwners(i), isUpdateViewer);
+    Handle(SelectMgr_EntityOwner) anOwner = theSelectedOwners(i);
+    if (aSelectedOwners.FindIndex(anOwner) > 0)
+      continue;
+
+    aContext->AddOrRemoveSelected(anOwner, isUpdateViewer);
   }
 }