OSDN Git Service

NVDAObjects.IAccessible.mozilla: Remove the _ prefix on _getGeckoVersion, as external...
authorJames Teh <jamie@jantrid.net>
Thu, 3 May 2012 01:05:22 +0000 (11:05 +1000)
committerJames Teh <jamie@jantrid.net>
Thu, 3 May 2012 01:05:22 +0000 (11:05 +1000)
source/NVDAObjects/IAccessible/mozilla.py

index 495a73c..53ea451 100755 (executable)
@@ -4,6 +4,7 @@
 #See the file COPYING for more details.\r
 #Copyright (C) 2006-2010 Michael Curran <mick@kulgan.net>, James Teh <jamie@jantrid.net>\r
 \r
+from collections import namedtuple\r
 import IAccessibleHandler\r
 import oleacc\r
 import winUser\r
@@ -98,8 +99,8 @@ class Document(Mozilla):
 \r
        def _get_treeInterceptorClass(self):\r
                states=self.states\r
-               ver=_getGeckoVersion(self)\r
-               if (not ver or ver.startswith('1.9')) and self.windowClassName!="MozillaContentWindowClass":\r
+               ver=getGeckoVersion(self)\r
+               if (not ver or ver.full.startswith('1.9')) and self.windowClassName!="MozillaContentWindowClass":\r
                        return super(Document,self).treeInterceptorClass\r
                if controlTypes.STATE_READONLY in states:\r
                        import virtualBuffers.gecko_ia2\r
@@ -132,17 +133,22 @@ class EmbeddedObject(Mozilla):
                        return False\r
                return super(EmbeddedObject, self).shouldAllowIAccessibleFocusEvent\r
 \r
-def _getGeckoVersion(obj):\r
+GeckoVersion = namedtuple("GeckoVersion", ("full", "major"))\r
+def getGeckoVersion(obj):\r
        appMod = obj.appModule\r
        try:\r
                return appMod._geckoVersion\r
        except AttributeError:\r
                pass\r
        try:\r
-               ver = obj.IAccessibleObject.QueryInterface(IServiceProvider).QueryService(IAccessibleHandler.IAccessibleApplication._iid_, IAccessibleHandler.IAccessibleApplication).toolkitVersion\r
+               full = obj.IAccessibleObject.QueryInterface(IServiceProvider).QueryService(IAccessibleHandler.IAccessibleApplication._iid_, IAccessibleHandler.IAccessibleApplication).toolkitVersion\r
        except COMError:\r
                return None\r
-       appMod._geckoVersion = ver\r
+       try:\r
+               major = int(full.split(".", 1)[0])\r
+       except ValueError:\r
+               major = None\r
+       ver = appMod._geckoVersion = GeckoVersion(full, major)\r
        return ver\r
 \r
 class GeckoPluginWindowRoot(WindowRoot):\r
@@ -154,8 +160,8 @@ class GeckoPluginWindowRoot(WindowRoot):
                        # Skip the window wrapping the plugin window,\r
                        # which doesn't expose a Gecko accessible in Gecko >= 11.\r
                        parent=parent.parent.parent\r
-               ver=_getGeckoVersion(parent)\r
-               if ver and not ver.startswith('1.'):\r
+               ver=getGeckoVersion(parent)\r
+               if ver and ver.major!=1:\r
                        res=IAccessibleHandler.accNavigate(parent.IAccessibleObject,0,IAccessibleHandler.NAVRELATION_EMBEDS)\r
                        if res:\r
                                obj=IAccessible(IAccessibleObject=res[0],IAccessibleChildID=res[1])\r
@@ -193,8 +199,8 @@ def findExtraOverlayClasses(obj, clsList):
        if iaRole in _IAccessibleRolesWithBrokenFocusedState:\r
                clsList.append(BrokenFocusedState)\r
 \r
-       ver = _getGeckoVersion(obj)\r
-       if ver and ver.startswith("1.9"):\r
+       ver = getGeckoVersion(obj)\r
+       if ver and ver.full.startswith("1.9"):\r
                clsList.append(Gecko1_9)\r
 \r
        clsList.append(Mozilla)\r