Salome HOME
Issue #591 - Highlight of the first argument of constraints
authornds <natalia.donis@opencascade.com>
Mon, 6 Jul 2015 12:08:14 +0000 (15:08 +0300)
committernds <natalia.donis@opencascade.com>
Mon, 6 Jul 2015 12:08:14 +0000 (15:08 +0300)
Sketch contour->hide, Extrusion start, select sketch. The multi control editor is not initialized by selection.

src/XGUI/XGUI_Displayer.cpp
src/XGUI/XGUI_ModuleConnector.cpp

index 98cea3cff16947832262d19c844296a0aefe6a5c..68d6ae9dcbb8f72c6962d8f1c50a58356a0b6364 100644 (file)
@@ -575,14 +575,23 @@ ObjectPtr XGUI_Displayer::getObject(const AISObjectPtr& theIO) const
 
 ObjectPtr XGUI_Displayer::getObject(const Handle(AIS_InteractiveObject)& theIO) const
 {
-  ObjectPtr aFeature;
+  ObjectPtr anObject;
   foreach (ObjectPtr anObj, myResult2AISObjectMap.keys()) {
     AISObjectPtr aAIS = myResult2AISObjectMap[anObj];
     Handle(AIS_InteractiveObject) anAIS = aAIS->impl<Handle(AIS_InteractiveObject)>();
     if (anAIS == theIO)
-      return anObj;
+      anObject = anObj;
+    if (anObject.get())
+      break;
+  }
+  if (!anObject.get()) {
+    std::shared_ptr<GeomAPI_AISObject> anAISObj = AISObjectPtr(new GeomAPI_AISObject());
+    if (!theIO.IsNull()) {
+      anAISObj->setImpl(new Handle(AIS_InteractiveObject)(theIO));
+    }
+    anObject = myWorkshop->module()->findPresentedObject(anAISObj);
   }
-  return aFeature;
+  return anObject;
 }
 
 bool XGUI_Displayer::enableUpdateViewer(const bool isEnabled)
index de204ffb420f67a6dd1ff504ac1207ede78e6dd2..700b25bc725560ac7eb5c0dcaafe3cdbd88b044b 100644 (file)
@@ -100,8 +100,6 @@ ObjectPtr XGUI_ModuleConnector::findPresentedObject(const AISObjectPtr& theAIS)
 {
   XGUI_Displayer* aDisp = myWorkshop->displayer();
   ObjectPtr anObject = aDisp->getObject(theAIS);
-  if (!anObject.get())
-    anObject = module()->findPresentedObject(theAIS);
   return anObject;
 }