]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Merge branch 'Dev_0.6.1' of newgeom:newgeom into Dev_0.6.1
authorvsv <vitaly.smetannikov@opencascade.com>
Sat, 27 Dec 2014 13:58:32 +0000 (16:58 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Sat, 27 Dec 2014 13:58:32 +0000 (16:58 +0300)
Conflicts:
src/PartSet/PartSet_SketcherMgr.cpp

src/XGUI/XGUI_Displayer.cpp
src/XGUI/XGUI_SelectionMgr.cpp

index 1e65fb9e24919977455ec7cf178047d53509de12..11136aece45b8ded7d89920b04b7147d8183d867 100644 (file)
@@ -203,11 +203,7 @@ void XGUI_Displayer::redisplay(ObjectPtr theObject, bool isUpdateViewer)
     Handle(AIS_InteractiveContext) aContext = AISContext();
     if (aContext.IsNull())
       return;
-    bool aToSelect = aContext->IsSelected(aAISIO);
     aContext->Redisplay(aAISIO, false);
-    // Restore selection state after redisplay
-    if (aToSelect) 
-      aContext->SetSelected(aAISIO, false);
     if (isUpdateViewer)
       updateViewer();
   }
@@ -431,7 +427,7 @@ void XGUI_Displayer::eraseAll(const bool isUpdateViewer)
 
 void XGUI_Displayer::openLocalContext()
 {
-  Handle(AIS_InteractiveContext) aContext = AISContext();
+  Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext();
   if (aContext.IsNull())
     return;
   // Open local context if there is no one
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);
   }
 }