diff --git a/src/AIS/AIS_Selection.cxx b/src/AIS/AIS_Selection.cxx index b0acb5ffa1..e797a7157a 100644 --- a/src/AIS/AIS_Selection.cxx +++ b/src/AIS/AIS_Selection.cxx @@ -72,8 +72,11 @@ AIS_SelectStatus AIS_Selection::Select (const Handle(SelectMgr_EntityOwner)& the const Standard_Boolean wasSelected = theOwner->IsSelected(); const Standard_Boolean toSelect = theOwner->Select (theSelScheme, isDetected); - if (toSelect && !wasSelected) + if (!wasSelected || !myResultMap.IsBound(theOwner)) { + if (!toSelect) + return AIS_SS_NotDone; + AIS_NListOfEntityOwner::Iterator aListIter; myresult.Append (theOwner, aListIter); myResultMap.Bind (theOwner, aListIter); @@ -81,11 +84,6 @@ AIS_SelectStatus AIS_Selection::Select (const Handle(SelectMgr_EntityOwner)& the return AIS_SS_Added; } - if (!toSelect && !wasSelected) - { - return AIS_SS_NotDone; - } - AIS_NListOfEntityOwner::Iterator aListIter = myResultMap.Find (theOwner); if (myIterator == aListIter) {