From: vsv Date: Fri, 28 Feb 2020 12:55:45 +0000 (+0300) Subject: Issue #3161: Do not use presentations for non-SHAPER objects X-Git-Tag: V9_5_0a2~73 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=a86c40c9c8535c6784060b759589be24f523cfe1;p=modules%2Fshaper.git Issue #3161: Do not use presentations for non-SHAPER objects --- diff --git a/src/PartSet/PartSet_Filters.cpp b/src/PartSet/PartSet_Filters.cpp index 88ba16c9a..2cb281422 100644 --- a/src/PartSet/PartSet_Filters.cpp +++ b/src/PartSet/PartSet_Filters.cpp @@ -47,21 +47,26 @@ PartSet_GlobalFilter::PartSet_GlobalFilter(ModuleBase_IWorkshop* theWorkshop) Standard_Boolean PartSet_GlobalFilter::IsOk(const Handle(SelectMgr_EntityOwner)& theOwner) const { bool aValid = true; + std::shared_ptr aAISObj = AISObjectPtr(new GeomAPI_AISObject()); + Handle(AIS_InteractiveObject) aAisObj; + if (theOwner->HasSelectable()) { + aAisObj = Handle(AIS_InteractiveObject)::DownCast(theOwner->Selectable()); + if (!aAisObj.IsNull()) { + aAISObj->setImpl(new Handle(AIS_InteractiveObject)(aAisObj)); + } + } + ObjectPtr aObj = myWorkshop->findPresentedObject(aAISObj); ModuleBase_Operation* anOperation = myWorkshop->module()->currentOperation(); + + // Issue #3161: Do not use presentations for non-SHAPER objects + if (!anOperation && !aObj.get()) + return false; + // the shapes from different documents should be provided if there is no started operation // in order to show/hide results if (anOperation) { aValid = false; if (ModuleBase_ShapeDocumentFilter::IsOk(theOwner)) { - std::shared_ptr aAISObj = AISObjectPtr(new GeomAPI_AISObject()); - if (theOwner->HasSelectable()) { - Handle(AIS_InteractiveObject) aAisObj = - Handle(AIS_InteractiveObject)::DownCast(theOwner->Selectable()); - if (!aAisObj.IsNull()) { - aAISObj->setImpl(new Handle(AIS_InteractiveObject)(aAisObj)); - } - } - ObjectPtr aObj = myWorkshop->findPresentedObject(aAISObj); if (aObj) { ResultPtr aResult = std::dynamic_pointer_cast(aObj); // result of parts belongs to PartSet document and can be selected only when PartSet