nvda
Navigating by line in Microsoft Edge is now up to 3x faster in the Windows 10 Creaters Update
#6994
Merged

Commits
  • Build a caching framework into the UIA NVDAObject class so as to allow for instantiating a UIA NVDAObject with a UIAElement containing prefetched UI Automation property values via a UI Automation CacheRequest, available for the remainder of the core cycle the NVDAObject was instantiated in. This is useful when instantiating an NVDAObject purely to generate a control field, where the caller knows what properties are needed.
    michaelDCurran committed 9 years ago
  • Edge: split out pre gap removal code into its own TextInfo class and use it in Windows builds less 15048. Windows builds above this now can use the generic UI Automation textWithFields code. Along with the added caching, these changes provide up to a 3x speed-up in reading lines in Microsoft Edge.
    michaelDCurran committed 9 years ago
  • Manually include precompiled UI Automation com interfaces.
    michaelDCurran committed 9 years ago
  • UIA caching: make sure to cache UIA_IsEnabledPropertyId for control fields.
    michaelDCurran committed 9 years ago
  • Address review actions.
    michaelDCurran committed 9 years ago
  • UIA: fetching boundingRectangle via getCurrentPropertyValueEx rather than currentBoundingRectangle returns a tuple of left,top,width,height, rather than a specific rectangle object with members of left,top,right and bottom.
    michaelDCurran committed 9 years ago
  • UIA NVDAObject: location property must return int coordinates, not float.
    michaelDCurran committed 9 years ago
  • UIA NVDAObject: don't use any UIA constants at class level unless UIA support is enabled.
    michaelDCurran committed 9 years ago
  • UI Automation client library cannot support properties added in a future version of Windows, either in cache requests, or provide defaults for them. Therefore: catch COMError when trhing to add properties to a controlFieldCacheRequest (E.g. sizeInSet on Windows 7), and also reintroduce try blocks around some of the property fetches in UIA NVDAObject's states property, much resembling what it used to be, though still using _getUIACacheablePropertyValue.
    michaelDCurran committed 9 years ago
  • UIA NVDAObject's _getUIACacheablePropertyValue: remove the 'onlyCached' parameter as it is really not needed.
    michaelDCurran committed 9 years ago
Loading