\r
def __contains__(self,obj):\r
if self.isWindowless:\r
- if obj.windowHandle != self.rootNVDAObject.windowHandle:\r
+ if not isinstance(obj, NVDAObjects.IAccessible.IAccessible):\r
+ return False\r
+ docHandle, ID = self.getIdentifierFromNVDAObject(obj)\r
+ if docHandle != self.rootDocHandle:\r
return False\r
try:\r
- self.rootNVDAObject.IAccessibleObject.accChild(obj.event_objectID)\r
+ self.rootNVDAObject.IAccessibleObject.accChild(ID)\r
return True\r
except COMError:\r
return False\r
- return winUser.isDescendantWindow(self.rootNVDAObject.windowHandle, obj.windowHandle)\r
+ return winUser.isDescendantWindow(self.rootDocHandle, obj.windowHandle)\r
\r
def _get_isAlive(self):\r
if self.isLoading:\r
# Trust IAccIdentity over the event parameters.\r
accId = info["objectID"]\r
else:\r
- accId = obj.event_objectID if obj.event_objectID > 0 else obj.event_childID\r
+ accId = obj.event_objectID\r
+ if accId is None:\r
+ # We don't have event parameters, so we can't get an ID.\r
+ raise LookupError\r
+ if accId <= 0:\r
+ accId = obj.event_childID\r
return obj.windowHandle, accId\r
\r
def _searchableAttribsForNodeType(self,nodeType):\r