From: vpa Date: Thu, 16 Jun 2016 13:30:11 +0000 (+0300) Subject: 0027612: Visualization, AIS_InteractiveContext - handle SelectMgr_EntityOwner::IsForc... X-Git-Tag: V7_1_0_beta~289 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=29627b4cdb88464374014748e3e3cd85af734c40;p=occt.git 0027612: Visualization, AIS_InteractiveContext - handle SelectMgr_EntityOwner::IsForcedHilight() flag in neutral point - the check for IsForcedHilight was added to interactive context --- diff --git a/src/AIS/AIS_InteractiveContext_1.cxx b/src/AIS/AIS_InteractiveContext_1.cxx index 1ec8365bce..54fd1e1314 100644 --- a/src/AIS/AIS_InteractiveContext_1.cxx +++ b/src/AIS/AIS_InteractiveContext_1.cxx @@ -216,9 +216,14 @@ AIS_StatusOfDetection AIS_InteractiveContext::MoveTo (const Standard_Integer th if (aNewDetected >= 1) { - // does nothing if previously detected object is equal to the current one + // Does nothing if previously detected object is equal to the current one. + // However in advanced selection modes the owners comparison + // is not effective because in that case only one owner manage the + // selection in current selection mode. It is necessary to check the current detected + // entity and hilight it only if the detected entity is not the same as + // previous detected (IsForcedHilight call) Handle(SelectMgr_EntityOwner) aNewPickedOwner = myMainSel->Picked (aNewDetected); - if (aNewPickedOwner == myLastPicked) + if (aNewPickedOwner == myLastPicked && !aNewPickedOwner->IsForcedHilight()) { return myLastPicked->IsSelected() ? AIS_SOD_Selected