[Nvda-dev] commit r1946 - trunk/source/NVDAObjects/IAccessible

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[Nvda-dev] commit r1946 - trunk/source/NVDAObjects/IAccessible

NVDA Subversion
Author: mdcurran
Date: Tue Apr 22 12:18:51 2008
New Revision: 1946

A fix for trac ticket #66 (bad performance in IA2 (specifically Gecko) dialogs). For now processGeckoDescription does not do its work if the description property is not the stock IAccessible NVDAObject description property (it has been overridden). The problem was that Dialog IAccessible NVDAObjects use the description property to present the dialog's text. But, this is quite intensive to compute. And, processGeckoDescription gets called for all new IAccessible NVDAObjects, so the description property was being calculated for all of them, even when comparing focus ancestors etc, and it was just getting way too slow. So now processGeckoDescription only works with the real MSAA description, not other things. Eventually I would like to break way dialog text in to some other method that just gets called on event_foreground, but for now this works pretty good.


Modified: trunk/source/NVDAObjects/IAccessible/__init__.py
--- trunk/source/NVDAObjects/IAccessible/__init__.py (original)
+++ trunk/source/NVDAObjects/IAccessible/__init__.py Tue Apr 22 12:18:51 2008
@@ -50,6 +50,9 @@
  return obj
 def processGeckoDescription(obj):
+ #Don't do this if the description property is overridden
+ if obj.__class__._get_description!=IAccessible._get_description:
+ return
  if not obj.windowClassName.startswith('Mozilla'):