Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge alpha into beta for 2021.1 #12391

Merged
merged 192 commits into from
May 14, 2021
Merged

Merge alpha into beta for 2021.1 #12391

merged 192 commits into from
May 14, 2021

Commits on Dec 8, 2020

  1. Start dev cycle for 2021.1 (PR #11913)

    Branch for release 2020.4 PR #11910
    feerrenrut authored Dec 8, 2020
    Configuration menu
    Copy the full SHA
    694912e View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2020

  1. Developer Guide: inline docstring and __doc__ attribute explanation…

    … (PR #9949)
    
    Fixes #9943
    
    Explain not to provide inline docstring when no `__doc__` attribute and using the legacy script construct (#9943)
    JulienCochuyt authored Dec 9, 2020
    Configuration menu
    Copy the full SHA
    2030dd6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d3ba21a View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2020

  1. Merge Beta into Alpha

    Merge remote-tracking branch 'origin/beta'
    Including:
    - Update translations.
    - Update liblouis to 3.16.1 (PR #11888)
    - Fix deadlock between nvWave stop and feed (PR #11886)
    - Detect Humanware Brailliant BI 40X and 20X via both USB and Bluetooth (PR #11819)
    feerrenrut committed Dec 11, 2020
    Configuration menu
    Copy the full SHA
    fba5058 View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2020

  1. Update espeak to commit 82d5b7b04 (PR #11928)

    * Update Espeak to commit 82d5b7b04
    
    Commit: "Ported voices from NVSpeechPlayer to espeak variants."
    Full sha: 82d5b7b04488412845101851f36da6953cac4378F
    
    * Update build process for Espeak
    - Split build environment settings for internal and 3rd party code.
    - Specifically don't enable warning level 3 for third party code builds.
    - Use 3rd party build config for Espeak and Libluis
    - centralize preprocessor macros
    feerrenrut authored Dec 15, 2020
    Configuration menu
    Copy the full SHA
    7b92e44 View commit details
    Browse the repository at this point in the history

Commits on Dec 22, 2020

  1. Configuration menu
    Copy the full SHA
    57e234f View commit details
    Browse the repository at this point in the history
  2. Update alpha from beta - Merge PR #11962

    Merge beta to alpha
    feerrenrut authored Dec 22, 2020
    Configuration menu
    Copy the full SHA
    7e5ffde View commit details
    Browse the repository at this point in the history

Commits on Dec 31, 2020

  1. diff-match-patch for LiveText (PR #11639)

    Refactor LiveText to use diff-match-patch via IPC with another process
    
    Changes diffing functions to operate at the string rather than line level.
    Adds diff-match-patch (DMP) as an optional diffing algorithm for LiveText objects.
    It is anticipated that DMP will become the default in a future NVDA release pending positive user testing.
    
    Unlike #11500, this PR does not import or dynamically link to DMP due to licensing issues.
    Instead, a Python application is run in another process that calls the DMP extension, and communicates over standard IO.
    
    Co-authored-by: Michael Curran <[email protected]>
    Co-authored-by: Reef Turner <[email protected]>
    3 people authored Dec 31, 2020
    Configuration menu
    Copy the full SHA
    9889285 View commit details
    Browse the repository at this point in the history

Commits on Jan 5, 2021

  1. Merge beta into alpha PR #11984

    - Translation updates
    - Fix for NVwave issue: #11968
    feerrenrut authored Jan 5, 2021
    Configuration menu
    Copy the full SHA
    d3aaca5 View commit details
    Browse the repository at this point in the history

Commits on Jan 11, 2021

  1. Configuration menu
    Copy the full SHA
    1f43f98 View commit details
    Browse the repository at this point in the history
  2. Synth drivers/eSpeak NG internal: pass in a NULL pointer (path string…

    …) when obtaining eSpeak NG version string (#11975)
    
    * Synth drivers/eSpeak NG internal: update copyright header
    
    * Synth drivers/eSpeak NG internal: passin NULL (None) when obtaining version info.
    
    Python 3.8: without passing in a path string, access violation is thrown, which can cause NVDA executable to hang when trying to obtain eSpeak NG version string. Therefore pass in NULL (None) because what NVDA is interested in is synthesizer version.
    
    * Synth drivers/eSpeak NG internal: address review comments.
    
    Comment from Lukasz Golonka: remove file name from copyright header, use bytes.decode to transform eSpeak NG version string from bytes to Unicode.
    josephsl authored Jan 11, 2021
    Configuration menu
    Copy the full SHA
    4c49001 View commit details
    Browse the repository at this point in the history
  3. Script decorator: add ability to specify that given script should be …

    …active in sleep mode. (#11979)
    
    * Script decorator: Allow to set `allowInSleepMode` for a decorated script.
    
    * Also take this oportunity to use type hints for script decorator parameters
    
    * Unit test for allowInSleepMode
    
    * Mention `allowInSleepMode` in script decorator's docstring
    
    * Lint fixes
    
    * Update developer guide
    
    * Update what's new
    
    Co-authored-by: Michael Curran <[email protected]>
    lukaszgo1 and michaelDCurran authored Jan 11, 2021
    Configuration menu
    Copy the full SHA
    8ec984e View commit details
    Browse the repository at this point in the history
  4. Dev docs: tell NVDA to treat source directory as app directory, allow…

    …ing dev docs build with Sphinx to succeed (#11972)
    
    * Dev docs/config: point globalVars.appDir to source directory when building source code dev docs. re #11971.
    
    Before building dev docs with Sphinx, config module is imported without NVDA knowing where the app dir is i.e. globalVars.appDir is undefined. Therefore tell Sphinx that globalVars.appDir is source directory so Sphinx can build source code documentation.
    
    * Dev docs/Sphinx config: update copyright header
    
    * Dev docs/Sphinx config: address review comments.
    
    Reviewed by Lukasz Golonka: move globalvars.appDir definition, along with removing duplicate globalVars import statement.
    josephsl authored Jan 11, 2021
    Configuration menu
    Copy the full SHA
    e34ec59 View commit details
    Browse the repository at this point in the history
  5. Sphinx: remove 2.2.2 restriction and update readme regarding building…

    … source code docs locally (#11973)
    
    * Sphinx: remove version requirement (2.2.2).
    
    NVDA docs can be built using more recent Sphinx releases such as 3.4.1. Therefore remove checking for Sphinx 2.2.2 in dev docs requirements.
    
    * Readme: replace Epydoc with Sphinx, and remove dev docs limitation statement.
    
    Replace Epydoc with Sphinx. As a result, remove the Python 3 source dev docs limitation statement, as Sphinx will now build NVDA dev docs.
    
    * Readme: document how to build source code docs with 'scons devDocs'.
    
    * Readme: output/DevDocs -> output/NVDA for source code documentation.
    
    * Dev docs/Sphinx: specify Sphinx 3.4.1 (December 2020 release).
    
    Comment from Lukasz Golonka: specify Sphinx==3.4.1 to align with readme.
    josephsl authored Jan 11, 2021
    Configuration menu
    Copy the full SHA
    b58e6cc View commit details
    Browse the repository at this point in the history
  6. Symbols: test regex group references through the symbols engine (#11961)

    * Symbols: test regex group references through the engine
    
    This adds a test for regex group reference replacement that goes through
    the complete speech symbol processor, using the French locale.
    
    * Fix test content
    sthibaul authored Jan 11, 2021
    Configuration menu
    Copy the full SHA
    714fa6f View commit details
    Browse the repository at this point in the history
  7. Update nvda_dmp to possibly address an autoread hang (#11998)

    * Update nvda_dmp.
    
    * Add flush calls for completeness.
    codeofdusk authored Jan 11, 2021
    Configuration menu
    Copy the full SHA
    04858db View commit details
    Browse the repository at this point in the history
  8. Don't use UnidentifiedEdit for windows with empty windowText (#11966)

    * Don't use UnidentifiedEdit for windows with empty windowText
    
    Fix-up of #8165
    
    * Update what's new
    
    Co-authored-by: Michael Curran <[email protected]>
    lukaszgo1 and michaelDCurran authored Jan 11, 2021
    Configuration menu
    Copy the full SHA
    4288882 View commit details
    Browse the repository at this point in the history

Commits on Jan 12, 2021

  1. Global commands: replace gestures map with script decorator (#11974)

    * Global commands: convert basic commands to use script decorator. Re #11964.
    
    The following commands were edited to use scriptHandler.script decorator: NVDA+N (show NVDA menu), NVDA+1 (toggle input help), NVDA+Q (quit NVDA), NVDA+F2 (pass next key through), NVDA+Shift+S/Z (toggle sleep mode), as well as unassigned restart NVDA command. For sleep mode toggle command, allow sleep mode flag is kept, and for NVDA menu and sleep mode toggle commands, gestures tuple is used (gestures order: keyboard (desktop and laptop), braille (including braille input and emulated keys), touch).
    
    * Global commands: convert system status scripts to use script decorator. Re #11964.
    
    Convert the following scripts: NVDA+F12 (time and date), NVDA+C (clipboard data announcement), NVDA+Shift+B (battery status).
    
    * Global commands: convert system focus and caret scripts to use script decorator. Re #11964.
    
    Convert the following commands: NVDA+up arrow/L (read current line), NVDA+Tab (current focus), NVDA+End/Shift+End (read status line), NVDA+down arrow/A (say all), NVDA+Shift+up arrow/Shift+S (say selection), NVDA+T (say title), NVDA+B (read foreground window).
    
    * Global commands: convert object navigation scripts to use script decorator. Re #11964.
    
    Converted object navigation scripts: NVDA+Numpad 5/4/6/8/2, NVDA+Shift+O/right/left/up/down arrows, object touch mode flicks (announce current object/move to next/previous/parent/first child) and friends.
    
    * Global commands: convert review cursor commands to script decorator. Re #11964.
    
    Convert review cursor commands: Shift+Numpad 7/9, Control+NvDA+Home/End on laptop layout (top/bottom), Numpad 7/8/9 (previous/current/next line)m Numpad 4/5/6 (previous/current/next word), Numpad 1/2/3 (previous/current/next character), Shift+Numpad 1/3 (start/end of line) and touch equivalents in text mode, along with review mark/copy commands.
    
    * Global commands: convert mouse and browse mode scripts to use script decorator. Re #11964.
    
    Convert the following commands: left/right mouse click/lock, move navigator object to mouse and mouse to navigator object, focus/browse mode toggle, parent tree interceptor.
    
    * Global commands: convert config dialogs/panels commands to use script decorator. Re #11964.
    
    Convert settings dialogs/panels opener commands to use script decorator, including ones iwthout a set gesture such as dictionary dialogs and review cursor panel.
    
    * Global commands: convert config management scripts to use script decorator. Re #11964.
    
    Convert the following configuration management scripts: Control+NVDA+C (save configuration), Control+NVDA+R (revert/reset configuration), Control+NVDA+P (open config profiles dialog), and an unassigned command to toggle profile triggers.
    
    * Global commands: convert settings scripts to use script decorator. Re #11964.
    
    Convert various settings scripts to use script decorator, including NVDA+2 (toggle speak typed characters), NVDA+U (probress bar output) and others.
    
    * Global commands: convert synth settings ring scripts to use script decorator. Re #11964.
    
    Convert synth settings ring scripts: Control+NVDA+arrows/Control+NVDA+Shift+arrows (next/previous setting, increase/decrease current setting).
    
    * Global commands: convert document formatting settings scripts to use script decorator. Re #11964.
    
    Convert document formatting scripts to use script decorator, all of them unassigned.
    
    * Global commands: convert unassigned settings scripts to script decorator. Re #11964.
    
    Convert unassigned settings scripts such as braille focus presentation, change braille cursor/shape, mouse text resolution, all unassigned.
    
    * Global commands: convert tools scripts to use script decorator. Re #11964.
    
    Convert tools scripts to script decorator, including app module info, UWP OCR, speech viewer, and others, some of them with gestures unassigned.
    
    * Global commands: convert braille display scripts to use script decorator. Re 311964.
    
    Converted braille input and outpu scripts (except keyboard emulation) to use script decorator (tested with a HumanWare BrailleNote Touch Plus).
    
    * Global commands: convert touch gestures to use script decorator. Re #11964.
    
    Convert touch-specific scripts to use script decorator, including touch hover, right click, and touch mode toggle.
    
    * Global commands: convert keyboard emulation scripts to use script decorator. Re #11964.
    
    Convert keyboard emulation scripts for Control, Alt, Windows, Shift, and NVDA keys to use script decorator.
    
    * Global commands: rearrange bypassInputHelp and remove commas from ends of function argument definitions. Re #11964.
    
    * Global commands: lint (Flake8 E203, E251)
    
    * Global commands: lint (Flake8 E501)
    
    * Global commands: fix spelling - 'wil' -> 'will' in speech mode command description.
    
    * Global commands: scriptHandler.script -> script
    
    * Global commands: remove gestures map, replaced by script decorator. Re #11964.
    
    Replace gestures map found in global commands with script decorator.
    
    * Global commands: update copyright year
    
    * Global commands: use allowInSleepMode flag for sleep mode toggle script. Re #11964.
    josephsl authored Jan 12, 2021
    Configuration menu
    Copy the full SHA
    c4d6fb5 View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2021

  1. Configuration menu
    Copy the full SHA
    bf36715 View commit details
    Browse the repository at this point in the history
  2. Fix for inappropriate distance announcement when pressing shift+tab f…

    …rom Outlook message (#11925)
    
    * When writing an e-mail in MS Outlook, pressing shift+tab keystroke to go back to the e-mail's headers or attachments should not announce a distance anymore.
    
    * Fixed linting.
    
    * Update what's new
    
    Co-authored-by: Michael Curran <[email protected]>
    CyrilleB79 and michaelDCurran authored Jan 20, 2021
    Configuration menu
    Copy the full SHA
    5daf693 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    33cd507 View commit details
    Browse the repository at this point in the history
  4. Update what's new

    michaelDCurran committed Jan 20, 2021
    Configuration menu
    Copy the full SHA
    c5697d6 View commit details
    Browse the repository at this point in the history
  5. Prevent running Windows 10 OCR if screen curtain is enabled. (#11921)

    * Prevent running Windows 10 OCR if screen curtain is enabled.
    
    * Update what's new
    
    Co-authored-by: Michael Curran <[email protected]>
    CyrilleB79 and michaelDCurran authored Jan 20, 2021
    Configuration menu
    Copy the full SHA
    b3b25d5 View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2021

  1. Python Console: Fix handling of the tab key in the input pane (#11532) (

    #11936)
    
    * Python Console: Fix handling of the tab key in the input pane (#11532)
    
     * Support indenting with tabs when editing a non-empty input line
     * Support tab-completion in the middle of an input line
    
    * Python Console: Tab-completion: Handle selection
    
     * Consider selection start rather than cursor position (different if selection is anchored at start)
     * Replace selection upon successful completion
    JulienCochuyt authored Jan 21, 2021
    Configuration menu
    Copy the full SHA
    561beeb View commit details
    Browse the repository at this point in the history
  2. Update what's new

    michaelDCurran committed Jan 21, 2021
    Configuration menu
    Copy the full SHA
    90c3787 View commit details
    Browse the repository at this point in the history
  3. Remove deprecated functions from the config module (#11935)

    * Remove  compatibility  wrappers around `hasUiAccess` and `execElevated` introduced in #10493 from the config module
    
    * Remove deprecated `getConfigDirs` from the config module
    
    * Add missing imports  from `typing` to the config module
    
    * Remove deprecated `canStartOnSecureScreens` from the config module
    
    * Update what's new
    
    Co-authored-by: Michael Curran <[email protected]>
    lukaszgo1 and michaelDCurran authored Jan 21, 2021
    Configuration menu
    Copy the full SHA
    d353d1b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ed24425 View commit details
    Browse the repository at this point in the history
  5. Update what's new

    michaelDCurran committed Jan 21, 2021
    Configuration menu
    Copy the full SHA
    8749473 View commit details
    Browse the repository at this point in the history
  6. Added some mathematical symbols (#11467)

    * Added some mathematical symbols
    
    * Addressed missing tab character and a missing level
    
    * Added some more mathematical symbols and restructured for better overview
    
    * Fixed some symols to match different languages (i.e. see issue #11502
    
    * Addressed review actions and removed the ordinal symbols because they cause issues in many lating languages. Those ordinal symbols should be controlled by the synthesizers.
    
    * Addressed review actions (removed the mathematical constants and the incremental symbol to avoid confusions and improved consistency in ortographics)
    Adriani90 authored Jan 21, 2021
    Configuration menu
    Copy the full SHA
    2e0ebb5 View commit details
    Browse the repository at this point in the history
  7. Update what's new

    michaelDCurran committed Jan 21, 2021
    Configuration menu
    Copy the full SHA
    84e2c6e View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2021

  1. Remove blank lines in browseable message (#12005)

    * Removed the blank lines in browseable message.
    
    * Code clean-up.
    
    * Addressed review comments: use html.escape to fully escape the message string.
    
    * Fixing commit issue (a modification was not correctly added in previous commit).
    
    * Update what's new
    
    Co-authored-by: Michael Curran <[email protected]>
    CyrilleB79 and michaelDCurran authored Jan 22, 2021
    Configuration menu
    Copy the full SHA
    e8f14f9 View commit details
    Browse the repository at this point in the history

Commits on Jan 26, 2021

  1. Convert NVDA's code base to use output reasons from enum in controlTy…

    …pes and remove deprecated REASON_* module level constants (#11969)
    
    * Convert NVDA's code base to use output reasons from enum in controlTypes rather than module level constants
    
    * Remove deprecated REASON_* constants from controlTypes
    
    * Update what's new
    
    Co-authored-by: Michael Curran <[email protected]>
    lukaszgo1 and michaelDCurran authored Jan 26, 2021
    Configuration menu
    Copy the full SHA
    856adec View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2021

  1. Configuration menu
    Copy the full SHA
    94e2926 View commit details
    Browse the repository at this point in the history

Commits on Feb 1, 2021

  1. Fix-up of #11467 in symbol file: (#12017)

    - deleted extra tab
    - removed duplicate symbol definition
    CyrilleB79 authored Feb 1, 2021
    Configuration menu
    Copy the full SHA
    90dd4e9 View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2021

  1. Configuration menu
    Copy the full SHA
    376780f View commit details
    Browse the repository at this point in the history
  2. System tests: run Chrome in kiosk mode to stop treeGrid test failing (#…

    …12023)
    
    * Chrome system tests: run Chrome in kiosk mode, which removes the need to press f6 1 or more times to move from the Chrome to the document.
    
    * Linting
    
    * Force another pr build.
    michaelDCurran authored Feb 3, 2021
    Configuration menu
    Copy the full SHA
    65e183b View commit details
    Browse the repository at this point in the history
  3. Fix misleading log message for aria-current="true" (PR #11782)

    Types and naming for isCurrent were confusing, so normalize the types
    using an enum and only name as ariaCurrent when the data is specific to aria-current,
    otherwise use 'isCurrent'. Include comments to link aria-current as the
    potential (likely) source for 'isCurrent'
    feerrenrut authored Feb 3, 2021
    Configuration menu
    Copy the full SHA
    94f60a8 View commit details
    Browse the repository at this point in the history
  4. add styles for userguide and changes (PR #12027)

    Co-authored-by: Michael Curran <[email protected]>
    feerrenrut and michaelDCurran authored Feb 3, 2021
    Configuration menu
    Copy the full SHA
    1c0ab7c View commit details
    Browse the repository at this point in the history
  5. Move functions / classes edge -> web

    UIA.Web is a new base for browser specific implementations:
    - spartan-edge
    - Chromium based browsers: anaheim-edge, chrome
    
    This commit is a direct move (no alterations) of code to preserve history.
    
    - Move function splitUIAElementAttribs
    - Move EdgeTextInfo
    - Move shareable aspects of class EdgeNode:
      * _get_role
      * _get_states
      * _get_ariaProperties
      * _get_isCurrent
      * _get_roleText
      * _get_placeholder
      * _get_landmark
    - Move class EdgeList
    - Move class EdgeHeadingQuickNavItem
    - Move class EdgeHeadingQuicknavIterator
    - Move shareable aspects of class EdgeHTMLTreeInterceptor:
      * makeTextInfo
      * shouldPassThrough
      * _iterNodesByType
    feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    edb0e88 View commit details
    Browse the repository at this point in the history
  6. Create new 'web' module

    This is a module containing common classes above the browser specific
    classes (edge.py, chromium.py). The browser specific classes inherit from
    these web module classes.
    
    - Move splitUIAElementAttribs(attribsString) from edge module to web module
    - Move common implementation of edge.EdgeNode and rename to web.UIAWeb(UIA),
      edge.EdgeNode now inherits from web.UIAWeb.
    - Move implementation of edge.EdgeList and rename to web.List(UIAWeb),
      edge.EdgeList now inherits from web.List
    - Move implementation of edge.EdgeHTMLTreeInterceptor and rename to
      web.UIAWebTreeInterceptor, edge.EdgeHTMLTreeInterceptor now inherits from
      web.UIAWebTreeInterceptor
    LeonarddeR authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    64ef614 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e074421 View commit details
    Browse the repository at this point in the history
  8. Depend upon abstract _isIframe rather than concrete impl

    The concrete implementation relied on knowing that self is
    actually a subclass and providing varied behaviour.
    
    Instead, abstract this test so it can be altered
    via polymorphism.
    feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    e3a47ae View commit details
    Browse the repository at this point in the history
  9. Fix lint for moved code

    feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    3f30bea View commit details
    Browse the repository at this point in the history
  10. Add chromium module

    Use chromium treeinterceptor
    
    Use Web module for chromium module
    
    Use chromium.ChromiumUIADocument in findOverlayClasses
    LeonarddeR authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    0032d5f View commit details
    Browse the repository at this point in the history
  11. Fix freeze in Chromium with UIA

    Trade off: slight degradation of performance.
    
    UIATextInfo._getTextWithFieldsForUIARange:
    Test each child to see if it is clipped by or lives completely
    outside the parent text range, and if so appropriately clip
    the child range and break out of the for loop.
    
    Previously these checks only happened on the final child to try
    and avoid extra calls, but Edge sometimes returns many more
    children then it should when on the end of a list, and a trivial
    slow down is much preferred over a 20 second freeze.
    michaelDCurran authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    833ab78 View commit details
    Browse the repository at this point in the history
  12. Fix freeze in Chromium with UIA

    Trade-off: only the first line is fetched.
    
    speech.getObjectSpeech:
    If the given object should have its text presented (E.g. a document
    or edit field) and the line at the selection cannot be fetched, then
    only present the first line.
    
    Previously the text for the entire object would be fetched, which in
    the case of Edgium, was extremely costly and could cause a freeze of
    10 seconds or more.
    michaelDCurran authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    65c5b59 View commit details
    Browse the repository at this point in the history
  13. Fix duplicate heading announcement Chromium with UIA

    As headings are exposed in the element tree,
    don't expose them in format fields.
    michaelDCurran authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    9c825b6 View commit details
    Browse the repository at this point in the history
  14. Fix freeze on checkboxes for chromium with UIA

    UIATextInfo._getTextwithFieldsForUIARange:
    skip children that appear completely before the start of the parent textRange.
    Stops a freeze on some checkboxes in Edgium and is generally safer.
    michaelDCurran authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    6809fc6 View commit details
    Browse the repository at this point in the history
  15. Fix list presentation while in browse mode for Chromium with UIA

    Make sure interactive / presentational lists are presented
    correctly in browseMode in Edgium.
    michaelDCurran authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    50a3097 View commit details
    Browse the repository at this point in the history
  16. Fix overriding labels when embedded object chars present for Chromium…

    … with UIA
    
    Embedded object characters in Edgium should not stop overriding labels from being used.
    michaelDCurran authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    8d90a61 View commit details
    Browse the repository at this point in the history
  17. Fix identification of layout tables for Chromium with UIA

    Allows ignoring of layout tables when configured to do so.
    michaelDCurran authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    56eb068 View commit details
    Browse the repository at this point in the history
  18. Fix missing value for comboboxes for Chromium with UIA

    Ensure the value of comboboxes are used as content.
    michaelDCurran authored and feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    6c676a8 View commit details
    Browse the repository at this point in the history
  19. Fix missing control names for Chromium with UIA

    Names of controls (that do not use their name as content)
    are always reported:
     Currently no way to tell if author has explicitly set name. Therefore
     always report the name if the control is not of a type that by
     definition uses its name for content. This may cause some duplicate
     speaking, but that is currently better than nothing at all.
    feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    0defba7 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    6a00a71 View commit details
    Browse the repository at this point in the history
  21. Update changes file for PR #12025

    PR #12025 was not squash merged (which is the usual practice for this project).
    Instead, to preserve the history of moved then modified code, the commits have
    been rebased directly onto master.
    feerrenrut committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    11ba984 View commit details
    Browse the repository at this point in the history
  22. Report comments in MS Word with UIA enabled (#9631)

    * Change condition for filtering comments
    
    * Deal with unretrievable date
    
    * Split filtering condition to two separate lines
    
    * Replace gesture dictionary with script decorator
    
    * Adress review requests.
    
    * Create helper function
    
    * Address linting errors
    
    * Address more linting errors
    
    * Modify copyright header
    
    * Fixes
    
    * Correct syntax
    
    * Linting
    
    * Ensure comments are read in different Office versions.
    
    * Linting
    
    * Update what's new
    
    Co-authored-by: Michael Curran <[email protected]>
    jakubl7545 and michaelDCurran authored Feb 3, 2021
    Configuration menu
    Copy the full SHA
    8f31bdc View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2021

  1. Add code review checklist for PRs (PR #12037)

    Co-authored-by: Leonard de Ruijter <[email protected]>
    feerrenrut and LeonarddeR authored Feb 5, 2021
    Configuration menu
    Copy the full SHA
    1392aa3 View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2021

  1. Merge pull request #12046 from nvaccess/beta

    Merge Beta (and translations) into master
    feerrenrut authored Feb 8, 2021
    Configuration menu
    Copy the full SHA
    068b181 View commit details
    Browse the repository at this point in the history
  2. Add missing context help. (PR #12034)

    * Fixes some missing context help in advanced settings panel.
    CyrilleB79 authored Feb 8, 2021
    Configuration menu
    Copy the full SHA
    a73b481 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2021

  1. Configuration menu
    Copy the full SHA
    dcf3a32 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2021

  1. Clarify code review checklist instructions (PR #12056)

    The intent of the checklist is to serve purely as a reminder, checking items communicates that you have considered the item, and have not accidentally forgotten about it.
    Further, the checklist acts as a reminder for reviewers, unfortunately GitHub does not yet provide a way to create a dedicated code review template.
    
    Additionally the wiki page has been adjusted: https://github.com/nvaccess/nvda/wiki/Github-pull-request-template-explanation-and-examples
    
    Co-authored-by: Cyrille Bougot <[email protected]>
    feerrenrut and CyrilleB79 authored Feb 12, 2021
    Configuration menu
    Copy the full SHA
    e5d62e3 View commit details
    Browse the repository at this point in the history

Commits on Feb 18, 2021

  1. Configuration menu
    Copy the full SHA
    8e51a7f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    567627f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ec1a5c5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a45b084 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1775a6d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    f2a509a View commit details
    Browse the repository at this point in the history
  7. Deploy via ssh to deploy.nvaccess.org this time with a correct entry …

    …in the ssh known_hosts file.
    michaelDCurran committed Feb 18, 2021
    Configuration menu
    Copy the full SHA
    71c385e View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2021

  1. appveyor.yml: add a comment above the call to ssh warning of a freeze…

    … if the server address is changed yet known_hosts is not updated.
    michaelDCurran committed Feb 21, 2021
    Configuration menu
    Copy the full SHA
    eea0406 View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2021

  1. Configuration menu
    Copy the full SHA
    e340852 View commit details
    Browse the repository at this point in the history
  2. Fix command line length limit reached (PR #12083)

    The number of files passed to xgettext had grown too great, use a file list instead
    feerrenrut authored Feb 23, 2021
    Configuration menu
    Copy the full SHA
    bdc71ba View commit details
    Browse the repository at this point in the history
  3. Report 'unsupported' when toggling screen layout in Word (#10795)

    Report 'unsupported' when toggling screen layout in Word (PR #10795)
    
    Fixes #7297
    Report "unsupported" when trying to toggle screen layout (NVDA+v)
    in MS Word and other applications that don't have support for
    screen layout.
    
    Previously 'v' was passed through to the application which was 
    confusing for users who expected screen layout to be available.
    
    Co-authored-by: Reef Turner <[email protected]>
    jakubl7545 and feerrenrut authored Feb 23, 2021
    Configuration menu
    Copy the full SHA
    b4087a2 View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2021

  1. remove unused imports from the nvwave module (#12048)

    * Nvwave: Update copyright header
    
    * Nvwave: remove unused imports
    
    * virtualBuffers: Remove unused import of nvwave
    lukaszgo1 authored Mar 1, 2021
    Configuration menu
    Copy the full SHA
    5678c8b View commit details
    Browse the repository at this point in the history

Commits on Mar 2, 2021

  1. Configuration menu
    Copy the full SHA
    8e3657d View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2021

  1. Fix usages of some remaining Python 2 names (#12036)

    * NVDA controller client  Python example: xrange -> range
    
    * Add unit test to make sure that locationHelper classes raises expected exceptions when attempting to create their isntances from wrong types.
    
    * locationHelper: Long no longer exists in Pythonn 3
    lukaszgo1 authored Mar 3, 2021
    Configuration menu
    Copy the full SHA
    2c4316d View commit details
    Browse the repository at this point in the history
  2. Microsoft Word documents (both with UIA enabled and disabled) now get…

    … a treeInterceptor created straight way, but with passThrough (focus mode) enabled. Thus, NVDA+f7 (elements list) is now available with out having to switch to browse mode in Microsoft Word first. (#12051)
    michaelDCurran authored Mar 3, 2021
    Configuration menu
    Copy the full SHA
    db664be View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2021

  1. remove winKernel.GetTimeFormat, winKernel.GetDateFormat and usages (#…

    …12139)
    
    * remove winKernel.GetTimeFormat, winKernel.GetDateFormat and usages
    
    * updated changes.t2t
    seanbudd authored Mar 11, 2021
    Configuration menu
    Copy the full SHA
    0d22a00 View commit details
    Browse the repository at this point in the history
  2. remove DriverSettingsMixin alias for AutoSettingsMixin (#12144)

    * remove DriverSettingsMixin alias for AutoSettingsMixin
    
    * update changes.t2t
    seanbudd authored Mar 11, 2021
    Configuration menu
    Copy the full SHA
    16b8333 View commit details
    Browse the repository at this point in the history
  3. remove getSpeechForSpelling alias for getSpellingSpeech (#12145)

    * remove getSpeechForSpelling alias for getSpellingSpeech
    
    * fix flake8 error
    
    * updated changes.t2t
    seanbudd authored Mar 11, 2021
    Configuration menu
    Copy the full SHA
    8e4b189 View commit details
    Browse the repository at this point in the history
  4. Py3.8: Transparently use a Python virtual environment under the hood (#…

    …12075)
    
    A Python virtual environment is now used transparently by the NVDA build system, and all Python dependencies are installed into this environment using pip.
    From a developer's perspective using the NVDA build system, there is no need to worry about the Python virtual environment behind the scenes, nor should you create and or activate one manually. All NVDA build system commands will handle this transparently.
    * To build NVDA, SCons should continue to be used in the usual way. E.g. executing scons.bat in the root of the repository. Running py -m SCons is no longer supported, and scons.py has also been removed.
    * To run NVDA from source, rather than executing source/nvda.pyw directly, the developer should now use runnvda.bat in the root of the repository. If you do try to execute source/nva.pyw, a message box will alert you this is no longer supported.
    * To perform unit tests, execute rununittests.bat [<extra unittest discover options>]
    * To perform system tests: execute runsystemtests.bat [<extra robot options>]
    * To perform linting, execute runlint.bat <base branch>
    Behind the scenes, the above batch files (scons, runnvda, rununittests, runsystemtests and runlint) ensure that the Python virtual environment is created and up to date, activates the environment, runs the command and then deactivates. All transparently. A developer should not have to know about the Python virtual environment at all.
    The first time one of these commands are run, the virtual environment will be created, and all required Python dependencies will be installed with pip. You can see the entire list of packages and their exact versions that pip will use, in requirements.txt in the root of the repository.
    venvUtils/ensureVenv.py contains the logic to check for, create and update the virtual environment.
    If a previous virtual environment exists but has a miss-matching Python version or pip package requirements have changed, The virtual environment is recreated with the updated version of Python and packages.
    If a virtual environment is found but does not seem to be ours, the user is asked if it should be overwritten or not.
    This script also detects if it is being run from an existing 3rd party Python virtual environment and aborts if so. thus, it is impossible to execute SCons or NVDA from source within another Python virtual environment.
    venvUtils/ensureAndActivate.bat can be used to ensure the virtual environment exists and is up to date, and then activates it in the current shell, ready for other commands to be executed in the context of NVDA's build system Python virtual environment. this would never normally be executed by itself, though appVeyor uses it at the beginning of its execution and leaves the environment active for the remainder of its execution.
    venvUtils/venvCmd.bat is a script that runs a single command within the context of the NVDA build system Python virtual environment. It ensures and activates the environment, executes the command, and then deactivates the environment. this script is what all the high-level batch files use internally.
    SConstruct, and source/nvda.pyw both contain logic that detects the NVDA build system Python virtual environment, and abort if it is not active.
    As this PR is specific for Python 3.8, it also upgrades the following Python dependencies:
    • wxPython to 4.1.1
    • pySerial to 3.5
    • py2exe to 0.10.1.0
    michaelDCurran authored Mar 11, 2021
    1 Configuration menu
    Copy the full SHA
    528d570 View commit details
    Browse the repository at this point in the history
  5. Update comtypes to 1.1.8 (#12155)

    * Update comtypes to 1.1.8
    
    * Fix check_version monkeypatch
    
    * Linting
    LeonarddeR authored Mar 11, 2021
    Configuration menu
    Copy the full SHA
    e2c6f50 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a6ba80c View commit details
    Browse the repository at this point in the history

Commits on Mar 12, 2021

  1. Deprecate import of Commands directly from speech module in favour of…

    … speech.commands (#12126)
    
    * Include deprecations of import commands directly from speech
    
    * fix flake8 issues
    
    * changes to match reproduction steps
    
    * update changelog
    seanbudd authored Mar 12, 2021
    Configuration menu
    Copy the full SHA
    c901b0f View commit details
    Browse the repository at this point in the history
  2. implement deprecation of SAYALL behaviour for speakTextInfo (#12150)

    * implement deprecation of SAYALL behaviour for speakTextInfo in favour of sayAllHandler
    
    * update changelog
    seanbudd authored Mar 12, 2021
    Configuration menu
    Copy the full SHA
    52bf1ed View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2021

  1. Chrome system tests: ensure the page is fully loaded (including all i…

    …frames) before testing the page (#12174)
    
    * Chrome system tests: add a load status line after the start marker, and wait for it to become "Test page load complete" before continuing with the test. This is set by the boy's onload event.
    
    * Core: queue the PostNVDAStartup notification so that it is actually executed from within the core loop once running, and after any initial focus has been reported.
    michaelDCurran authored Mar 16, 2021
    Configuration menu
    Copy the full SHA
    4779af0 View commit details
    Browse the repository at this point in the history
  2. Performance increase interacting with Visual Studio (#12170)

    * NVDAObjects.UIA.visualStudio.findExtraOverlayClasses: avoid fetching parent unless it is actually needed. Provides a significant performance increase.
    
    * Update what's new.
    michaelDCurran authored Mar 16, 2021
    Configuration menu
    Copy the full SHA
    a20e768 View commit details
    Browse the repository at this point in the history
  3. Stop installer from attempting to delete lib directories for the vers…

    …ion of NVDA which has just been installed (#12165)
    
    * installer: Unify usages of names from ctypes to avoid linter warnings about star imports
    
    * installer: Remove unused imports
    
    * Ensure that installer does not try to delete lib directories for the version of NVDA which is currently being installed.
    lukaszgo1 authored Mar 16, 2021
    Configuration menu
    Copy the full SHA
    ee1be35 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ef8a0d4 View commit details
    Browse the repository at this point in the history
  5. controlTypes: Remove deprecated ROLE_EQUATION (#12164)

    * controlTypes: Remove deprecated ROLE_EQUATION
    
    * update changes.t2t
    
    Co-authored-by: buddsean <[email protected]>
    lukaszgo1 and seanbudd authored Mar 16, 2021
    Configuration menu
    Copy the full SHA
    d67c3c7 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3dcba91 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2021

  1. don't rely on star imports from synthDriverHandler (#12172)

    * synthDriverHandler: Remove unused imports, standardize copyright header
    
    * sayAllHandler: Remove unused import of synthDriverHandler
    
    * settingsDialog: don't rely on star imports from synthDriverHandler
    
    * globalCommands: don't rely onn star imports from synthDriverHandler, remove unused imports
    
    * update changes.t2t
    
    Co-authored-by: buddsean <[email protected]>
    lukaszgo1 and seanbudd authored Mar 17, 2021
    Configuration menu
    Copy the full SHA
    04849b0 View commit details
    Browse the repository at this point in the history
  2. Use DriverSetting classes from autoSettingUtils rather than from driv…

    …erHandler (#12168)
    
    * Use DriverSetting classes from autoSettingUtils rather than from driverHandler
    
    * update changes.t2t
    
    Co-authored-by: buddsean <[email protected]>
    lukaszgo1 and seanbudd authored Mar 17, 2021
    Configuration menu
    Copy the full SHA
    b3b2e1f View commit details
    Browse the repository at this point in the history
  3. TextInfos must inherit from BaseContentRecogTextInfo (#12157)

    * usage of TextInfos that do not inherit from BaseContentRecogTextInfo is removed
    
    * remove unusued code
    
    * update changes.t2t
    seanbudd authored Mar 17, 2021
    Configuration menu
    Copy the full SHA
    4b74c7b View commit details
    Browse the repository at this point in the history
  4. Enable cancellable speech by default (PR #11266)

    First introduced with "Cancellable speech #10885"
    Several issues fixed with "Fix several issues in speech manager #11245"
    feerrenrut authored Mar 17, 2021
    Configuration menu
    Copy the full SHA
    5fbe05d View commit details
    Browse the repository at this point in the history

Commits on Mar 18, 2021

  1. Fix right-to-left layout direction issues (#12181)

    * move to supported usage of wx.StaticBoxSizer
    
    standardize LTRStaticBoxSizer usage
    
    standardize LTRStaticBoxSizer usage
    
    test wx RTL workaround
    
    use wxWidgets workaround
    
    commit c59e874
    Author: buddsean <[email protected]>
    Date:   Tue Mar 16 14:09:26 2021 +1100
    
        try parent instead of sibling method
    
    commit 11017de
    Author: buddsean <[email protected]>
    Date:   Tue Mar 16 13:25:59 2021 +1100
    
        remove LTRStaticBoxSizer workaround
    
    commit e17de62
    Author: buddsean <[email protected]>
    Date:   Tue Mar 16 13:14:39 2021 +1100
    
        try parent instead of sibling method
    
    commit 45514f2
    Author: buddsean <[email protected]>
    Date:   Tue Mar 16 11:48:24 2021 +1100
    
        try parent instead of sibling method
    
    commit 9575740
    Author: buddsean <[email protected]>
    Date:   Tue Mar 16 11:23:59 2021 +1100
    
        try parent instead of sibling method
    
    commit 608fb66
    Author: buddsean <[email protected]>
    Date:   Mon Mar 15 14:38:37 2021 +1100
    
        test wx RTL workaround
    
    commit f1189bf
    Author: buddsean <[email protected]>
    Date:   Mon Mar 15 14:03:20 2021 +1100
    
        test wx RTL workaround
    
    * fix flake8 issues
    
    * set layout on mainframe for locale
    
    * fix lint
    
    * move out wx import
    
    * use better typing and naming
    
    * remove unused variable
    
    * apply DRY
    
    * undo risky import change
    
    * fix lint
    
    * undo risky import change, fix lint
    
    * fix nose typing read
    
    * remove unneccessary typing import
    
    * update changes.t2t
    seanbudd authored Mar 18, 2021
    Configuration menu
    Copy the full SHA
    073826a View commit details
    Browse the repository at this point in the history
  2. Allow NVDA build system to still function if NvDA repository is moved…

    … or copied to another location (#12184)
    
    * venvUtils\ensureAndActivate.bat: rather than calling the standard activate.bat from the generated .venv, set the necessary environment variables manually, and make VIRTUAL_ENV be relative to this script, rather than a hard-coded path.
    This allows the NVDA repository to be moved or copied somewhere else on the same system and the environment used without having to be recreated.
    
    * Don't call the deactivate script from venvCmd.bat. We no longer call activate.bat so deactivate.bat may do the wrong thing. But more importantly, we already call endlocal which dumps all changes to the environment anyway, thus it is not needed.
    
    * Add extra comments to venvCmd.bat explaining setlocal / endlocal.
    
    * ensureAndActivate.bat: add more clearer comments, mentioning .venv's standard activate.bat.
    michaelDCurran authored Mar 18, 2021
    Configuration menu
    Copy the full SHA
    7139a9c View commit details
    Browse the repository at this point in the history
  3. Stop printing some exceptions in __del__ to standard error (#12148)

    * garbageHandler.trackableObject's __del__method: handle the case where the object is being deleted while Python is exiting. In this situation, some global symbols could be None.
    
    * comtypesMonkeyPatches: in our override of compointer_base's __del__ method: handle the case where Python is exiting. In this situation some global symbols could become set to None.
    
    * Linting
    
    * Clarify comment.
    
    * comtypesMonkeyPatches._newCpbdel: make isFinalizer check a little easier to read.
    michaelDCurran authored Mar 18, 2021
    Configuration menu
    Copy the full SHA
    3c1693d View commit details
    Browse the repository at this point in the history

Commits on Mar 22, 2021

  1. Update espeak to 1.51-dev commit 53915b (PR #12202)

    Now using 1.51-dev commit 53915bf0a7cd48f90c4a38ac52fff697723d9f4d
    feerrenrut authored Mar 22, 2021
    Configuration menu
    Copy the full SHA
    b5ad8d6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    abdf77e View commit details
    Browse the repository at this point in the history
  3. Remove backwards compat aliases from PR 10593 (#12195)

    Removes code provided for backwards compatibility in PR #10593
    
    ### Summary of the issue:
    
    PR #10593 introduced `speech.speakWithoutPauses ` as an alias for `speech._speakWithoutPauses.speakWithoutPauses` and `speech.re_last_pause` as an alias for `speech._speakWithoutPauses.re_last_pause` for backwards compatibility. Since 2021.1 is going to be backwards compatibility breaking release it makes sense to remove these.
    
    ### Description of how this pull request fixes the issue:
    
    These aliases are removed and their usages are replaces with `speech.SpeechWithoutPauses(speakFunc=speech.speak).speakWithoutPauses` and `speech.SpeechWithoutPauses.re_last_pause` respectively.
    lukaszgo1 authored Mar 22, 2021
    Configuration menu
    Copy the full SHA
    f2a734b View commit details
    Browse the repository at this point in the history
  4. Update liblouis to 3.17.0 (PR #12137)

    Adds Urdu braille tables to the GUI
    Co-authored-by: Reef Turner <[email protected]>
    AAClause authored Mar 22, 2021
    Configuration menu
    Copy the full SHA
    83738d7 View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2021

  1. Move some classes from the main gui module. (#12105)

    Code layout in the gui module is sup optimal. This can easily cause cyclic imports for one such example see #11950 
    While the issue mentioned above has been resolved it makes sense to reorganize this part of the code to minimize likelihood of similar problems in the future.
    
    Description of how this pull request fixes the issue:
    - `LauncherDialog`, `WelcomeDialog` and `AskAllowUsageStatsDialog` were moved to the `gui.startupDialogs` module
    - `getDocFilePath` has been moved into the new `documentationUtils` module as there is no logical connection between it and gui
    
    Co-authored-by: buddsean <[email protected]>
    lukaszgo1 and seanbudd authored Mar 23, 2021
    Configuration menu
    Copy the full SHA
    fc6b73f View commit details
    Browse the repository at this point in the history
  2. Fix routing to cell in selection (braille) (PR #12208)

    When routing to a cell within a selection, an error occurred.
    When there is a selection self.brailleCursorPos is None.
    feerrenrut authored Mar 23, 2021
    Configuration menu
    Copy the full SHA
    6ede267 View commit details
    Browse the repository at this point in the history
  3. Remove Adobe Flash support from NVDA (PR #12207)

    Support for Adobe Flash content has been removed from NVDA due to the
    use of Flash being actively discouraged by Adobe.  
    Fixes #11131
    
    Co-authored-by: Reef Turner <[email protected]>
    LeonarddeR and feerrenrut authored Mar 23, 2021
    Configuration menu
    Copy the full SHA
    ae38fcc View commit details
    Browse the repository at this point in the history
  4. fix installation crash from StaticBoxSizer changes (#12199)

    Summary of the issue:
    The standard installation process crashes with the following traceback, caused by #12181
    
    Description of how this pull request fixes the issue:
    Fix various crashing GUI bugs introduced to the installation process in #12181
    Add smoke tests for the installation process
    seanbudd authored Mar 23, 2021
    Configuration menu
    Copy the full SHA
    0316158 View commit details
    Browse the repository at this point in the history

Commits on Mar 25, 2021

  1. Optional experimental support for Microsoft Excel via UI Automation (#…

    …12210)
    
    Since 2013, Microsoft has been slowly adding a UI Automation implementation to Microsoft Excel. For quite some time, this implementation was missing too much to be at all useful for NVDA. However, in the last year, Microsoft has increased its effort in this area, starting to fill many of the gaps in the implementation, providing more of a reason for NVDA to start consuming this experimentally, with the goal of one day switching to UI Automation in Excel by default.
    Not only would this provide significant performance improvemts for NVDA with Excel, but it would also enable scenarios such as using Excel in Application Guard, or remotely via Windows Virtual Desktop, where access to the object model and in-process injection is no longer possible.
    
    NVDA will now fall back to relying on UI Automation In Microsoft Excel if available, if NVDA is not able to inject in-process.
    A new option has been added to NVDA's Advanced settings, which when enabled, forces NVDA to use UI Automation in Microsoft Excel always when available.
    Although so far navigating, editing and querying cells is all supported, the following features are not yet implemented:
    • NvDA Elements List for listing formulas, comments etc. The needed UI Automation extensions are not yet available.
    • Browse mode quick nav. Again, same reason as above.
    • Setting / consuming screen reader specific column and row headers. This feature probably will not be supported. Instead it is recommended to make these particular sets of data into tables, marking the needed rows and columns as headers in the standrd way for modern Microsoft Excel.
    As some Excel-specific information on cells does not quite fit with standard NVDA concepts. A new Cell Appearance script (NVDA+o) has been added, which presents a browse mode document, listing these specific bits of information. This script may be changed or removed in future as it is possible to find this information out by looking in the Cell formatting dialog etc anyway, but for now it is there to demonstrate NVDa's ability to fetch this kind of information from UI Automation.
    Many of Excel's specific features have been exposed by Microsoft through UI automation via either annotations, or custom properties.
    Standard UIA annotations that NvDA consumes for this support are:
    • comment: For notes and comments. NVDA exposes the "has comment" state on cells, and reports the comment with a reportComment script (NVDA+alt+c).
    • Data validation error: the error text is included in the cell's description.
    • Formula error: the error text is included in the cell's description.
    • Circular reference error: the error text is included in the cell's description.
    Microsoft has made use of UI Automation's custom property feature in order to expose many more Excel-specific properties: https://docs.microsoft.com/en-us/office/uia/excel/excelcustomproperties
    This pr adds an infrastructure in UIAHandler / UIA NVDAObjects which allows registering and accessing these custom property IDs in a standard way.
    The properties that Microsoft exposes in Excel are:
    • cellFormula: mapped to NvDA's hasFormula state.
    • cellNumberFormat: exposed in Cell appearence script (NvDA+o). Note however that Excel currently exposes the raw template value and not the friendly name. So right now this is not as useful as it could be.
    • hasDataValidation: Exposed in Cell appearence script (NvDA+o)
    • hasDataValidationDropdown: Mapped to NvDA's submenu state.
    • dataValidationPrompt: exposed in cell description and Cell appearence script (NvDA+o)
    • hasConditionalFormatting: exposed in Cell appearence script (NvDA+o)
    • areGridlinesVisible: exposed in Cell appearence script (NvDA+o)
    • commentReplyCount: Included in reportComment script (NvDA+alt+c).
    The above annotations and properties have only been available in Microsoft Excel since build 16.0.13522.10000.
    Thus turning on this option will only be useful for this build or higher.
    michaelDCurran authored Mar 25, 2021
    Configuration menu
    Copy the full SHA
    ed5fca6 View commit details
    Browse the repository at this point in the history
  2. use wx.Accessible to improve accessibility of our settings panels and…

    … checkable list controls (#12215)
    
    To fix some accessibility issues in our settings panel and checkable lists, we had to use a custom com server with comtypes. However, wx has built-in functionality to manipulate accessibility properties.
    
    This commit removes our own accprop server in favour of wx' native support.
    
    Closes #12209
    LeonarddeR authored Mar 25, 2021
    Configuration menu
    Copy the full SHA
    57e02ca View commit details
    Browse the repository at this point in the history
  3. Make com interfaces ide friendly (PR #12201)

    * Make UIAutomationClient work for tools and runtime
    
    At runtime the import from comtypes.gen will work, as a fallback for IDE
    / Tools that can't find that, the relative import is used.
    
    Note: IDE's wont be aware of 'protected' symbols (beginning with
    underscore). Protected symbols aren't imported with the from x import * statment.
    
    * Auto fix generated files for IDE / tools.
    
    Generated "friendly name" comtypes.gen files are modified so that they
    can be used by tools / IDEs more easily.
    
    The files are read, the module name extracted, and the import statement
    replaced by a more elaborate version which include a fall back to a do a
    relative import if the comtypes.gen file is not found.
    feerrenrut authored Mar 25, 2021
    Configuration menu
    Copy the full SHA
    8412adb View commit details
    Browse the repository at this point in the history
  4. Exit NVDA safely by closing all top level windows (#12183)

    Unreleased silent installs of NVDA were causing a crash at the end of the install process.
    
    it was found NVDA closes the wxApp by forcibly exiting the MainLoop. This is not recommended and the behaviour of closing the TopWindow is recommended.
    
    NVDA now will exit even with windows still open, the exit process now closes all NVDA windows and dialogs
    seanbudd authored Mar 25, 2021
    Configuration menu
    Copy the full SHA
    8665526 View commit details
    Browse the repository at this point in the history
  5. Replace isWin10 with more flexible Windows version checking (PR #11909)

    Convenience methods and types have been added to the winVersion module for getting and comparing Windows versions. 
      - isWin10 function found in winVersion module has been removed.
      - class winVersion.WinVersion is a comparable and order-able type encapsulating Windows version information.
      - Function winVersion.getWinVer has been added to get a winVersion.WinVersion representing the currently running OS.
      - Convenience constants have been added for known Windows releases, see winVersion.WIN* constants.
    
    Closes #11795
    Closes #11837
    Closes #11933
    Replaces #11796
    Replaces #11799
    josephsl authored Mar 25, 2021
    Configuration menu
    Copy the full SHA
    ff79f51 View commit details
    Browse the repository at this point in the history
  6. Restore advanced settings layout. (#12223)

    The new option introduced by #12210 was not located in the "Microsoft UI Automation" option group as it should.
    Probably due to missed changes during upmerge of master.
    
    It is now Put in this group as intended by using The static box of the sizer as parent for the checkbox rather than the whole panel.
    CyrilleB79 authored Mar 25, 2021
    Configuration menu
    Copy the full SHA
    d90b24e View commit details
    Browse the repository at this point in the history

Commits on Mar 26, 2021

  1. Remove backwards compat code from IAccessibleHandler (#12232)

    removes code marked as deprecated in #10934
    
    PR #10934 refactored IAccessibleHandler into a package. This necessitated keeping some unused imports but marking them as deprecated. Also various parts of NVDA relied on the fact that IAccessibleHandler star imported all variables from IAccessible and IAccessible2 COM interfaces.
    
    Unused imports are removed from IAccessibleHandler
    NVDA's source has been modified to use IAccessible2 names from the COM interface rather than from IAccessibleHandler.
    lukaszgo1 authored Mar 26, 2021
    Configuration menu
    Copy the full SHA
    6a0839d View commit details
    Browse the repository at this point in the history
  2. Report appointment categories in Microsoft Outlook (PR #11598)

    Outlook appointments could have multiple categories (or colors) assigned to them.
    Fetch the categories from the object model and report them after other appointment details.
    LeonarddeR authored Mar 26, 2021
    Configuration menu
    Copy the full SHA
    9a1cca5 View commit details
    Browse the repository at this point in the history
  3. Allow UIA to work again on Win7 after pr #12210 (#12233)

    With the merging of pr #12210 it became impossible to interact with UI Automation controls on Windows 7.
    
    * Fetching the annotationTypes UIA property raises a COMError if not implemented by the control. On newer Operating Systems UIA core returns a default.
     * Fetching the SelectionPattern2 interface also causes a COMError on older Operating Systems if not implemented by the control.
    
    Therefore: 
    * Catch COMError when fetching UIA annotationTypes.
    * Catch COMError when fetching the UIA SelectionPattern2 interface.
    
    Fixes #12227
    michaelDCurran authored Mar 26, 2021
    Configuration menu
    Copy the full SHA
    656ecb5 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2021

  1. Patch wx overriding the correct python locale (#12214)

    The thread executing this did not have the correct locale set by NVDA through languageHandler.setLanguage. This is due to the latest wxPython incorrectly overriding the locale with one not supported by python.
    
    The Windows/System language option should also call locale.setlocale in setLanguage and the locale needs to be reset after wx changes it.
    seanbudd authored Mar 28, 2021
    Configuration menu
    Copy the full SHA
    d9ccf26 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2021

  1. Fix for #12234 (#12236)

    lukaszgo1 authored Mar 29, 2021
    Configuration menu
    Copy the full SHA
    e1a937f View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2021

  1. Ensure that speech.cancelSpeech clears instance of `SpeechWithoutPa…

    …uses` which has been used for say all. (#12228)
    
    Fixes #12225
    
    PR #12195 removed speech.speakWithoutPauses which was an alias for speech._speakWithoutPauses. While all usages of speech.speakWithoutPauses were found and fixed it turned out than when cancelling speech during say all speech._speakWithoutPauses was cleared rather than instance of SpeakWithoutPauses used for say all.
    
    Now the instance of SpeechWithoutPauses which is used during say all is cleared. A function is added to sayAllHandler which creates it first if necessary, and ensures that the single instance is being used for say all.
    lukaszgo1 authored Mar 30, 2021
    Configuration menu
    Copy the full SHA
    55a9b32 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2021

  1. Microsoft Edge with UIA: move the browse mode caret to the target of …

    …a same-page link when it is activated, by supporting UI Automation's activeTextPositionChanged event. (#12242)
    
    When following a same-page link in a web browser, the page is scrolled to the target of the same-page link, and it is expected that the screen reader will move its browse mode caret to that location as well.
    Recently a new ActiveTextPositionchanged event was added to UI Automation to allow browsers to communicate this to screen readers. Only in the last week or so, Microsoft Edge Canary has started firing this event when same-page links are activated.
    NVDA should make use of this.
    
    NVDA now registers for UI Automation's ActiveTextPositionChanged event globally, and when one is received, fires its own UIA_activetextPositionChanged NvDA event. This NVDA event is implemented on UIABrowseModeDocument, which uses BrowseMode's _handleScrollTo to move the browse mode caret to the new location.
    _handleScrollTo had to be changed to accept not just an NvDAObject, but now also a TextInfo, as the ActiveTextPositionChanged event is actually passed a IUIAutomationTextRange.
    michaelDCurran authored Mar 31, 2021
    Configuration menu
    Copy the full SHA
    2e37433 View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2021

  1. Configuration menu
    Copy the full SHA
    ebe1ab5 View commit details
    Browse the repository at this point in the history
  2. Ensure TextInfo.getTextInChunks does not freeze, and provide new frie…

    …ndly compareable TextInfo endpoint properties (#12253)
    
    TextInfo.getTextInChunks could sometimes end up in an infinit loop when dealing with particular TextInfo implementations such as ITextDocument where setting start to the end of the document results in the start never quite getting there.
    
    To work around this specific freeze, getTextInChunks now double checks that the start has really moved to the end of the last chunk. If not, we break out of the loop.
    
    However, for a long time now we have wanted to make these TextInfo comparisons much more readable, which can aide in finding logic errors much easier.
    To that end, TextInfo objects now have start and end properties, which can be compared mathematically, and also set from another, removing the need to use compareEndPoints or setEndPoint.
    Some examples:
    Setting a's end to b's start
    Original code:
    a.setEndPoint(b, "endToStart")
    New code:
    a.end = b.start
    Is a's start at or past b's end?
    Original code:
    a.compareEndPoints(b, "startToEnd") >= 0
    New code:
    a.start >= b.end
    TextInfo.getTextInChunks has been rewritten to use these new properties.
    michaelDCurran authored Apr 6, 2021
    Configuration menu
    Copy the full SHA
    0efeee4 View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2021

  1. UIA NvDAObject's selectionContainer property: protect against a NULL …

    …selectionContainer on UIA's SelectionItemPattern, such as for Lutlook Attachment lists. (#12274)
    
    After merging of pr #12210 , The attachment list in Outlook no longer read with NVDA, and an error was produced in the log.
    It seems that Outlook's attachment list, gives back a NULL pointer for the SelectionContainer property on its UIA SelectionItemPattern.
    
    This commit Checks to see if CurrentSelectionContainer is NULL and returns None as there is nothing further we can do with that pattern.
    
    Fixes #12265
    michaelDCurran authored Apr 7, 2021
    Configuration menu
    Copy the full SHA
    62eaba5 View commit details
    Browse the repository at this point in the history

Commits on Apr 8, 2021

  1. Ensure AppVeyor message is added for translation comment errors (#12283)

    Post a relevant message to appveyor and the PR when a build fails due to translation comments missing or unexpectedly included
    seanbudd authored Apr 8, 2021
    Configuration menu
    Copy the full SHA
    1fdf8ec View commit details
    Browse the repository at this point in the history

Commits on Apr 9, 2021

  1. Fix NVDA crash when formatting a timestamp of a log entry under some …

    …versions of Universal CRT (#12250)
    
    Under some versions of Universal CRT Python can crash when formatting time with time.localtime and locale is set to a language which contains underscore it its name. For users this manifests in a crash of NVDA since default log formatter attempts to format current time with time.localtime when writing anything to the log.
    
    WX Python no longer tries to set Python locale to an nonexistent one when creating an instance of wx.app. While this is not necessary any longer when time.localtime is not used we are managing locale ourselves in languageHandler so it makes sense to do it just in one place. When formatting time of the log entries time.localtime is not used any more
    
    * Backport of `InitLocale` from Wx Python 4.1.2 to workaround crash encountered under particular versions of Universal  CRT.
    
    * Custom implementation of `formatTime` for log formatter using win32 API calls to avoid crashes under Server 2019 and  Windows 10 1809
    
    * Lint for winKernel:
    
    - Remove star imports
    - Remove duplicate definition of openProcess
    
    * logHandler: move import of winKernel to the top of the file and remove unused imports.
    
    Co-authored-by: buddsean <[email protected]>
    lukaszgo1 and seanbudd authored Apr 9, 2021
    Configuration menu
    Copy the full SHA
    911d712 View commit details
    Browse the repository at this point in the history
  2. Update espeak-ng to 1.51-dev commit cad1c8e8 (PR #12280)

    Adds readme for espeak, including how to update espeak submodule, sourced from:
    https://github.com/nvaccess/nvda/wiki/Updating-eSpeak-NG
    feerrenrut authored Apr 9, 2021
    Configuration menu
    Copy the full SHA
    49a8578 View commit details
    Browse the repository at this point in the history

Commits on Apr 12, 2021

  1. Bug issue template: Rewrote COM Reg. Fix Tool question, to make user …

    …more likely to run it before submitting
    XLTechie committed Apr 12, 2021
    Configuration menu
    Copy the full SHA
    db84870 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #12276 from XLTechie/bugTemplateCRFTLanguage

    Bug issue template: Rewrote COM Reg. Fix Tool question, to make it more action-oriented
    Qchristensen authored Apr 12, 2021
    Configuration menu
    Copy the full SHA
    626e9b9 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2021

  1. Configuration menu
    Copy the full SHA
    bd12c88 View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2021

  1. Improve logging of test for panel destruction (PR #12291)

    * Reduces the log noise during destruction of SettingsDialogs
    * Makes the log easier to follow, objects and constants are now more clearly described.
    * Fixes a space in the import statement, this was a typo and is strange style.
    feerrenrut authored Apr 15, 2021
    Configuration menu
    Copy the full SHA
    35ceac2 View commit details
    Browse the repository at this point in the history

Commits on Apr 16, 2021

  1. Work around wxWidgets assertion (PR #12292)

    See issue #12220
    
    There was a wxAssertion error when closing braille or speech settings panels.
    
    ERROR - unhandled exception (09:33:35.263) - MainThread (7112):
    wx._core.wxAssertionError: C++ assertion ""GetWindow() != 0"" failed at ..\..\src\common\wincmn.cpp(3919) in wxWindowAccessible::GetDescription(): 
    
    The above exception was the direct cause of the following exception:
    SystemError: <class 'wx._core.WindowDestroyEvent'> returned a result with an error set
    
    There is a lot more information about the investigation on the issue.
    
    This PR provides a workaround, the true cause of this assertion has not yet been determined.
    However in the meantime this PR will prevent the log error, and any additional instability in 
    WX that may occur due to ending up in this situation.
    feerrenrut authored Apr 16, 2021
    Configuration menu
    Copy the full SHA
    516706d View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2021

  1. Configuration menu
    Copy the full SHA
    a17643f View commit details
    Browse the repository at this point in the history
  2. Fix for error on Chromium UIA combo-box when restoring Advanced Setti…

    …ngs (#12302)
    
    Using .Selection on a combo-box rather than .GetSelection was causing an error when restoring Advanced settings to default.
    
    Modified .Selection to .GetSelection()
    CyrilleB79 authored Apr 19, 2021
    Configuration menu
    Copy the full SHA
    1d038ff View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2021

  1. Configuration menu
    Copy the full SHA
    f94aa03 View commit details
    Browse the repository at this point in the history
  2. Fix reporting of superscript / subscript in Wordpad (#12262)

    In IAccessible edit field such as WordPad, enabling "Superscript and subscript" reporting in Document formatting settings was not enough to have them reported. It was also required to have Font attributes reporting enabled.
    This is due to a forgotten part of the code when reporting of superscript/subscript has been separated from reporting of the other attributes in #10919.
    
    Description of how this pull request fixes the issue:
    Added the missing 'if' statement
    CyrilleB79 authored Apr 20, 2021
    Configuration menu
    Copy the full SHA
    ce28256 View commit details
    Browse the repository at this point in the history
  3. Downgrade to Python 3.7 due to stack corruption in Python 3.8+ (#12298)

    Fixes #12152
    Fixes #12154
    
    Since upgrading to Python 3.8, several serious crashes in NVDA have been reported. Specifically:
    • NVDA crashing when using the SAPI4 speech synthesizer: #12152
    • NVDA crashing when using Windows Explorer on Windows Server 2012: #12154
    Both of these issues were traced to stack corruption after a Python callback of NVDA's was called from external libraries. In SAPI4's case, after calling NVDA's implementation of ITTSBufNotifySink::TextDataStarted, and in the Windows Server 2012 case: IUIAutomationPropertyChangedEventHandler::handlePropertyChangedEvent.
    It seems as though libFFI / Python ctypes is not cleaning the stack properly after executing a Python callback with the stdcall calling convention (ctypes WINFUNCTYPE), where the callback contained at least one argument larger than 4 bytes (E.g. a long long, or a VARIANT struct), and the arguments preceding it were such that this argument was not aligned to an 8 byte boundary. E.g. the callback might be:
    • callback(void*, long long) or
    • callback(void*, void*, int, VARIANT)
    See Python bug: https://bugs.python.org/issue38748
    On that bug I have attached a minimal testcase.
    This bug affects both Python 3.8 and Python 3.9.
    The bug is most likely in the libFFI project used by Python's ctypes module. Python 3.8 switched to a much more recent and official version of libFFI I believe.
    Although we do really want to move to Python 3.8+ as soon as we can, right now this bug makes it impossible to do so. We could specifically work around the currently known manifestations by moving some of that code into C++, but that brings its own risks, and we still don't know where else this issue may appear in our code. The appropriate thing to do right now is stay on Python 3.7 until we can work with Python / libFFI to get this resolved.
    
    Description of how this pull request fixes the issue:
    Downgrades to Python 3.7 by referencing Python 3.7 (rather than 3.8) in NVDA's build system.
    The existing PRs that needed to be reverted were:
    • Updating brlAPI to a Python 3.8 build: nvaccess/nvda-misc-deps#20
    • Switching to using Python's own pgettext: #12109
    • calling os.add_dll_directory when loading liblouis: #12020
    None of these PRs provided any user visible changes.
    The rest of the Python 3.8 work, including the switch to a virtual
    environment etc is all compatible with Python 3.7 and can remain.
    michaelDCurran authored Apr 20, 2021
    Configuration menu
    Copy the full SHA
    e019a24 View commit details
    Browse the repository at this point in the history
  4. Fix Issue 12147: new focus target is not always announced (#12252)

    fixes #12147
    
    The new focus target is not always announced when:
    1. The triggering button is activated while in browse mode
    2. The triggering button is removed
    3. The focus target is adjacent to where the triggering button was
    This is because of the overlapping logic for browse mode focus changes that is used to prevent duplicate announcements. That overlapping logic did not account for this scenario.
    See the linked codepens in #12147 for more examples.
    I can not specially point to an instance of this in the wild, as all of my use-cases are behind a firewall. However, I know that this behavior is not unusual in SPA-style web apps.
    
    Description of how this pull request fixes the issue:
    This PR fixes the issue by altering the overlapping detecting logic so that:
    1. We look at the state of the previous focus object
    2. If the state of the previous focus object is DEFUNCT (no longer available) and an overlap was detected, then continue as if there was not an overlap.
    mfairchild365 authored Apr 20, 2021
    Configuration menu
    Copy the full SHA
    da3028a View commit details
    Browse the repository at this point in the history
  5. Add missing formatting information in MS Excel cells (strikethrough, …

    …superscript/subscript) (#12264)
    
    Some formatting information is not reported when navigating from one cell to another in Excel, although the corresponding category is checked in Document formatting settings.
    
    - strikethrough is not reported even if font attributes is checked
    - superscript or subscript is not reported even if the corresponding option is checked
    
    Strikethrough, superscript and subscript are now reported when navigating through Excel cells if the corresponding option is enabled
    CyrilleB79 authored Apr 20, 2021
    Configuration menu
    Copy the full SHA
    5de73c1 View commit details
    Browse the repository at this point in the history
  6. Fix up of 11738: Force UIA for Outlook messages list even though it d…

    …oesn't support UIA natively (#12241)
    
    PR #11738 made it impossible to use UIA for controls which doesn't report as native UIA. This decreased accessibility of Outlook's messages list in some versions of Outlook (certainly for 2010 and possibly for 2013) which reports as non native UIA.
    
    Description of how this pull request fixes the issue:
    Similar to the fix in #11828 for these controls the fact that they're non native UIA is ignored.
    lukaszgo1 authored Apr 20, 2021
    Configuration menu
    Copy the full SHA
    381c976 View commit details
    Browse the repository at this point in the history
  7. remove wx.CENTER_ON_SCREEN and wx.CENTRE_ON_SCREEN (#12309)

    We included code to add backwards compatibility for addons for the following deprecated wxPython constants wx.CENTER_ON_SCREEN = wx.CENTRE_ON_SCREEN when used with Dialog.Center()
    
    Description of how this pull request fixes the issue:
    Remove the deprecated code, and it's only usage in AskAllowUsageStatsDialog, replace with self.CentreOnScreen()
    seanbudd authored Apr 20, 2021
    Configuration menu
    Copy the full SHA
    240f641 View commit details
    Browse the repository at this point in the history
  8. Add code owners and CONTRIBUTING (PR #12294)

    With code owners we can automatically request a code review from a code owner when a PR is no longer a draft.
    Hopefully this helps contributors communicate they are ready for a review from core developers.
    To facilitate this, new contributions should start in draft state, and be converted to "ready for review" when initial checks are complete.
    
    This adds a code owners file, docs: https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
    Docs for auto-assign code reviewer: https://docs.github.com/en/organizations/organizing-members-into-teams/managing-code-review-assignment-for-your-team
    Adds a CONTRIBUTING file which points to our full guide: https://github.com/nvaccess/nvda/wiki/Contributing
    feerrenrut authored Apr 20, 2021
    Configuration menu
    Copy the full SHA
    4781002 View commit details
    Browse the repository at this point in the history
  9. comInterfaces_sconscript: correct case of MathPlayer.py string. (#12310)

    Fixes #12281
    
    Math can no longer be read in NVDA with mathPlayer.
    a regression introduced by pr #12201
    comInterfaces_sconscript instructs comtypes to generate Python files from typelibs/mathPlayer.tlb. Comtypes produces MathPlayer.py (note the uppercase M). However, the sconscript target was hardcoded as "mathPlayer.py" (note the lowercase m). This has always been the case, and has not been a problem as scons and Windows is case insensitive and so Scons thought the target had been correctly created. However, pr #12201 makes use of the target's abspath property to rewrite the file with some extra imports. However, the path is made from the hardcoded target, so it has the lowercase m and therefore when the file is written out again, it has a lowercase m, and mathPres cannot then import MathPlayer with an uppercase M.
    
    Description of how this pull request fixes the issue:
    Correct the "mathPlayer.py" string in comInterfaces_sconscript to "MathPlayer.py".
    michaelDCurran authored Apr 20, 2021
    Configuration menu
    Copy the full SHA
    37d66a5 View commit details
    Browse the repository at this point in the history
  10. Move report formatting changes box to the correct parent (#12307)

    In #12181, the setting "Report formatting changes after the cursor" in "Document Formatting" was incorrectly moved to the wrong parent, the static box grouping above it, making it invisible to the user. It was readable using NVDA but not graphically visible to the user. This has been corrected.
    seanbudd authored Apr 20, 2021
    Configuration menu
    Copy the full SHA
    f3306af View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2021

  1. Updated developer guide to clarify that the Remote Python Console is …

    …unavailable in binary builds (#12316)
    XLTechie authored Apr 21, 2021
    Configuration menu
    Copy the full SHA
    d1c8ccd View commit details
    Browse the repository at this point in the history
  2. prevent Chrome losing focus during systests (#12293)

    Our system tests randomly fail due to chrome not having focus, and so NVDA does not read the expected speech. Sometimes this is due to a Docker popup asking for feedback.
    
    Changes:
    - Log when the event postNvdaStartup fires
    - sleep for 2s before launching chrome
    
    
    Known issues with pull request:
    - Docker popups may still block the build
    - 2s of sleep might not be long enough (we have confidence that 10s is)
    - Lint checking occasionally blocks builds due to a failed merge (likely due to a rare GitHub issue)
    seanbudd authored Apr 21, 2021
    Configuration menu
    Copy the full SHA
    0703066 View commit details
    Browse the repository at this point in the history
  3. Ensure settings are scrolled to using tab navigation (#12300)

    Navigating through settings using tabbing does not visually scroll to the focused control.
    
    wxPython ScrolledPanels calculate the position to scroll to based on the relative position to a focus elements parent, rather than the relative position to the ScrolledPanel itself.
    
    When fixing right-to-left issues in #12181, another layer of nesting was introduced for controls in our settings panels, which caused the controls to no longer get scrolled to.
    
    A patched version of ScrolledPanel is created, which calculates relative position to the ScrolledPanel
    seanbudd authored Apr 21, 2021
    Configuration menu
    Copy the full SHA
    bc8eb11 View commit details
    Browse the repository at this point in the history
  4. WinVersion class follow-up: remove ease of access is supported flag (#…

    …12222)
    
    NVDA requires Windows 7/Server 2008 R2 SP1 or later, therefore Ease of Access is available.
    
    This removes easeOfAccess.isSupported flag.
    josephsl authored Apr 21, 2021
    Configuration menu
    Copy the full SHA
    6200a07 View commit details
    Browse the repository at this point in the history
  5. Fix copy config from portable during installation. (PR #12076)

    Related PR #9679
    Fixes #12071
    Fixes #12205 
    
    Co-authored-by: Reef Turner <[email protected]>
    lukaszgo1 and feerrenrut authored Apr 21, 2021
    Configuration menu
    Copy the full SHA
    46f66ac View commit details
    Browse the repository at this point in the history
  6. Reuse FILETIME from winKernel. (PR #12312)

    * Use FILETIME from winKernel in objidl and SAPI4 internal driver rather than defining it in every file.
    Follow up of PR #12250:
    lukaszgo1 authored Apr 21, 2021
    Configuration menu
    Copy the full SHA
    dd950eb View commit details
    Browse the repository at this point in the history
  7. Correctly report accented letters after cap (PR #11977)

    Fixes #11948
    
    # Summary of the issue:
    As described in #11948, some letter with diacritic is not spelt correctly with some synth if "Say cap before capitale" is checked, e. g. 'À' is spelt 'cap A' instead of 'cap A grave'.
    Looking at getSpellingSpeech function in speech\__init__.py, it appears that this is due to the fact that the string 'cap À' is passed to the synth in the speech sequence in such a case. But the synth is only asked to use character mode for the strings whose length is 1. This is wrong in this case, because 'cap' should be spoken with character mode off, but 'À' should be spoken with character mode on.
    
    # Description of how this pull request fixes the issue:
    In getSpellingSpeech, in the string sequence, I have separated the 'cap' message string from the character to be spelt. If the character to be spelt is of length 1, i.e. not replaced by symbol description or modified pronunciation, character mode is activated. If a string in the speech sequence has a length > 1, because it is a capitalization message or because it corresponds to a character description or symbol replacement, character mode is disabled.
    
    Note that the 'cap' message can be of two types:
    - with 'cap' indication before as in English: 'cap %s'
    - with 'cap' indication after as in French: '%s majuscule'
    
    Co-authored-by: Reef Turner <[email protected]>
    CyrilleB79 and feerrenrut authored Apr 21, 2021
    Configuration menu
    Copy the full SHA
    4d47375 View commit details
    Browse the repository at this point in the history
  8. Fix readme typo/grammar (PR #12301)

    In reading the README recently, I noticed several areas where minor grammar corrections could be made, and one or two where the grammar in certain paragraphs could be made to flow better for a more clear understanding.
    
    Mostly these are rather insignificant changes, and on their own wouldn't be worth a PR, but collected together I thought they might be considered.
    
    # Description of how this pull request fixes the issue:
    Thinking that improving the readability of the readme could aid new devs, I made the following changes:
    
    - Inserted a few missing words with my best guess as to what they should have been.
    - Fixed one capitalization error.
    - Converted indefinite articles to definite where appropriate.
    - Changed the format of a link to be like other links on the same site.
    - In one case, added a missing link.
    - Rephrased a couple small items, and the Get Support paragraph.
    XLTechie authored Apr 21, 2021
    Configuration menu
    Copy the full SHA
    330961c View commit details
    Browse the repository at this point in the history
  9. No longer fail to report content of unfocused text fields in Firefox (#…

    …12319)
    
    Fixes #12114
    
    PR #12025 started catching only very specific exceptions when getting selection of edit fields. However in Firefox attempting to get caret for non focused edit fields results in RuntimeError which made it impossible to speak these controls.
    
    Description of how this pull request fixes the issue:
    When getting content of edit fields in speech, we're now catching RuntimeError as well and treating this situation like no selection.
    lukaszgo1 authored Apr 21, 2021
    Configuration menu
    Copy the full SHA
    a94f5fe View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2021

  1. Fix up from #12210: Excel without UIA enabled: again allow typing and…

    … editing in cells (#12321)
    
    Fixes #12303
    
    After merging of pr #12210 editing cells in Excel without UIA enabled became im possible as NVDA did not report / track focus had ented the Cell Edit control.
    This was due to the EXCEL6 window accidentally being marked as having a good UIA implementation. This was testing code left over from the early implementation of #12210.
    
    Description of how this pull request fixes the issue:
    Remove EXCEL6 from the good UIA windows list.
    Also ensure that MSAA focus events on this window are ignored when using Excel with UIA enabled, as Excel will fire its own UIA focus event on an edit control within the active cell.
    michaelDCurran authored Apr 22, 2021
    Configuration menu
    Copy the full SHA
    03746a1 View commit details
    Browse the repository at this point in the history
  2. refactor the exit of nvda and gui.terminate (#12286)

    Summary of the issue:
    When restarting NVDA, WM_QUIT is posted as an event to the window, forcibly exiting the app. This leaves objects such as the system tray icon left behind.
    
    Additionally, changes introduced in #12183
    - caused the braille viewer to be closed without saving state properly
    - lost code that destroyed the system tray and menu in some instances
    - made most of gui.terminate no longer necessary/redundant
    
    Description of how this pull request fixes the issue:
    - A windows event winUser.WM_EXIT_NVDA is registered that triggers safeAppExit and can be called across instances of NVDA.
    - move the safe destruction of the brailleviewer to safeAppExit so that it is exited properly before destruction
    - reintroduce the destruction of the system tray icon and menu, and remove the icon manually.
    - ensured safeAppExit is not called from gui.terminate if it has been called elsewhere to terminate the app. WM_QUIT is the other way to exit the MainLoop other than safeAppExit
    - removed restarting the MainLoop in gui.terminate to process pending events as this doesn't work.
    
    Known issues with pull request:
    - When starting a new instance of NVDA with an existing instance running, where one is version <2020.4, NVDA will not exit safely. Instead, the running NVDA copy will terminate directly using the behaviour of 2020.4. This is because WM_EXIT_NVDA won't be registered on the older instance.
    - Issues with terminating NVDA across instances cannot be logged properly as the loghandler hasn't been initialized
    seanbudd authored Apr 22, 2021
    Configuration menu
    Copy the full SHA
    60c0b76 View commit details
    Browse the repository at this point in the history

Commits on Apr 23, 2021

  1. Configuration menu
    Copy the full SHA
    d9afe35 View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2021

  1. Configuration menu
    Copy the full SHA
    a0089a2 View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2021

  1. Suppressed the option to file a default issue on NVDA's Github new is…

    …sue chooser page. (PR #12334) (#12334)
    
    The default issue is just a copy of the bug issue template with introductory text suggesting it not be used.
    Added a config.yml file to the Github issue config folder, which stops the option from being generated.
    Left the default issue template file in place, in case some Github quirk or error allows its filing in the future.
    XLTechie authored Apr 28, 2021
    Configuration menu
    Copy the full SHA
    260063b View commit details
    Browse the repository at this point in the history
  2. Create tool for comparing GUI and UI elements in copies of NVDA (#12308)

    GUI and UI features for NVDA can become lost through code refactors. Generating screenshots and comparing text across copies of NVDA is an annoying process for developers.
    
    A tool is created using our system tests to generate screenshots and text of all the content in NVDA settings. This can be expanded upon to include other GUI and UI features of NVDA.
    seanbudd authored Apr 28, 2021
    Configuration menu
    Copy the full SHA
    e8c32e3 View commit details
    Browse the repository at this point in the history
  3. Developer Guide: Fix not parsed headers (#12332)

    The following two snippets can be found in the current Developer Guide as rendered in HTML format:
    
    `+++ An Example Manifest File +++`
    `++ Plugins and Drivers ++`
    These have been around for quite some time.
    It seems quite obvious they should be rendered as headers, respectively:
    
    `4.2.2. An Example Manifest File`
    `4.3. Plugins and Drivers`
    JulienCochuyt authored Apr 28, 2021
    Configuration menu
    Copy the full SHA
    badd390 View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2021

  1. Speech Viewer: allow to close with alt+F4 & add a close button on the…

    … title bar for use with pointing devices (#10791) (#12330)
    
    The Speech Viewer currently has no close button nor can be closed with alt+F4.
    
    As described by @Qchristensen in #10791 (comment), most dialogs in NVDA can be closed with alt+F4.
    As argued by @bhavyashah in #10791 (comment), the Speech Viewer is especially useful for sighted testers who might be more familiar in using pointing devices than keyboard shortcuts.
    
    Description of how this pull request fixes the issue:
    Handle closing with alt+F4 & add a standard close button in the title bar of the dialog.
    
    Co-authored-by: Sean Budd <[email protected]>
    JulienCochuyt and seanbudd authored Apr 29, 2021
    Configuration menu
    Copy the full SHA
    f84a7d9 View commit details
    Browse the repository at this point in the history
  2. Braille Viewer: Add a close button on the title bar for use with poin…

    …ting devices (#12328)
    
    The Braille Viewer currently presents no close control on its GUI.
    It can only be closed with alt+F4 or by means of the dedicated NVDA Tools menu entry.
    
    Description of how this pull request fixes the issue:
    Add a standard close button on the title bar of the Braille Viewer dialog.
    JulienCochuyt authored Apr 29, 2021
    Configuration menu
    Copy the full SHA
    e2d2696 View commit details
    Browse the repository at this point in the history

Commits on Apr 30, 2021

  1. Fix Sapi4 pitch change (PR #12354)

    Fixes: #12311
    
    Co-authored-by: Reef Turner <[email protected]>
    cary-rowen and feerrenrut authored Apr 30, 2021
    Configuration menu
    Copy the full SHA
    a3af16e View commit details
    Browse the repository at this point in the history
  2. Added guidance on where to provide info in github templates (PR #12333)

    Added a new paragraph to the bug, feature, and default issue templates, explaining that comments should appear BENEATH the lines with hashmarks.
    
    Updated the COM Reg. Fix Tool question in the default issue template, to the current bug template's revision.
    XLTechie authored Apr 30, 2021
    Configuration menu
    Copy the full SHA
    f392c23 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2021

  1. Configuration menu
    Copy the full SHA
    3f6bf0c View commit details
    Browse the repository at this point in the history

Commits on May 4, 2021

  1. Elements List: Don't remove the label of a filled spin button input f…

    …ield (#12317) (#12318)
    
    In browse mode documents, when a spin button input field is filled with a value, its label goes missing from the Elements List dialog.
    
    Description of how this pull request fixes the issue:
    Remove the role ROLE_SPINBUTTON from the set of exceptions for which the content replaces the label.
    JulienCochuyt authored May 4, 2021
    Configuration menu
    Copy the full SHA
    86fe20f View commit details
    Browse the repository at this point in the history

Commits on May 5, 2021

  1. Focus chrome after starting in system tests (#12352)

    As discussed in #12293, our systems fail randomly. Usually this is due to another window stealing focus, such as the taskbar or Docker. As system tests are run locally, we shouldn't be killing these processes.
    
    Description of how this pull request fixes the issue:
    Use windows API to make the chrome window gain focus
    Adds logging that lists the foreground window and open windows if chrome doesn't gain focus
    Removes extra sleep time after starting NVDA
    seanbudd authored May 5, 2021
    Configuration menu
    Copy the full SHA
    bacd1ab View commit details
    Browse the repository at this point in the history
  2. Revert "Microsoft Word documents (both with UIA enabled and disabled)…

    … now get a treeInterceptor created straight way, but with passThrough (focus mode) enabled. Thus, NVDA+f7 (elements list) is now available with out having to switch to browse mode in Microsoft Word first. (#12051)" (#12365)
    
    This reverts pr #12051 commit db664be.
    
    Fixes #12117
    
    Summary of the issue:
    In both Outlook and Windows 10 Mail, a Microsoft Word document control is used to display content of received emails and emails currently being composed. In NVDA 2020.4, NVDA would use browse mode for reading emails, but not for writing emails.
    However, after merging of pr #12051 browse mode is no longer used by default when reading emails. This is because the base Microsoft Word document NVDAObject now creates a TreeInterceptor all the time, but set to focus mode, so that elements list is always available in Microsoft Word.
    But as hxMail and Outlook implementations assumed browse mode would be available for the TreeInterceptor always, and only created the TreeInterceptor in the reading pane, Windows 10 mail and Outlook ended up getting no treeInterceptor for writing email (ok) but for reading email it got a treeInterceptor but set to focus mode (not okay).
    
    Description of how this pull request fixes the issue:
    Reverts pr #12051 .
    michaelDCurran authored May 5, 2021
    Configuration menu
    Copy the full SHA
    5ce7545 View commit details
    Browse the repository at this point in the history

Commits on May 6, 2021

  1. No startup sound for launcher --minimal (PR #12322)

    Fixes #12289
    
    Co-authored-by: Reef Turner <[email protected]>
    JulienCochuyt and feerrenrut authored May 6, 2021
    Configuration menu
    Copy the full SHA
    54e18f5 View commit details
    Browse the repository at this point in the history
  2. Fix wx assertion error (PR #12363)

    Fixes: #12336
    Fixes: #12220
    
    # Summary of the issue:
    Issue#12220 Causes a wx assertion message when either the Braille or Speech settings panels are open.
    This seems to be related to the expando text control used on both panels.
    The assertion is in wx's accessibility code, which has been introduced in our latest upgrade of wxPython.
    The PR #12292 attempted to fix this by explicitly destroying the expando text control when closing.
    In #12292 it was missed that the onSave callback was also called for the apply button.
    
    # Description of how this pull request fixes the issue:
    While looking at adding an explicit close callback for panels, I noticed that Destroy was being called manually during the event handler.
    Scheduling a destroy call after the event handler seems to resolve this issue.
    As I understand, destroying children explicitly is not required.
    
    While here also:
    - Tidy onSave / onApply
    - Add type info for 'catIdToInstanceMap' and 'categoryClasses'
    feerrenrut authored May 6, 2021
    Configuration menu
    Copy the full SHA
    a3e983a View commit details
    Browse the repository at this point in the history
  3. Recognize Windows 10 build 19043 as Version 21H1 (May 2021 Update) (PR

    …#12259)
    
    * WinVersion: recognize Windows 10 build 19043 as Version 21H1.
    
    Add WIN10_21H1 constant and 21H1 key to Windows 10 versions to builds map.
    
    * AppX: update max version tested key to 10.0.19043.0 (Version 21H1).
    josephsl authored May 6, 2021
    Configuration menu
    Copy the full SHA
    a7f9d47 View commit details
    Browse the repository at this point in the history

Commits on May 7, 2021

  1. Increase AppVeyor git clone depth and lint try branch builds (#12346)

    Up the clone depth to unlimited (by removing setting the value)
    Fetch master directly when performing a try-branch build so that lint checks can now run on try branch builds
    recursively fetch submodules on demand.
    seanbudd authored May 7, 2021
    Configuration menu
    Copy the full SHA
    a110d14 View commit details
    Browse the repository at this point in the history
  2. refactor the exit of nvda and gui.terminate (#12342)

    Summary of the issue:
    
    Changes introduced in #12183
    
    - caused the braille viewer to be closed without saving state properly
    - lost code that destroyed the system tray and menu in some instances
    - made most of gui.terminate no longer necessary/redundant
    
    Description of how this pull request fixes the issue:
    
    - Creates `core.triggerNVDAExit` which terminates necessary modules safely and then closes all windows
    - Destroys the system tray icon and menu
    - Uses a parser error message if a new NVDA instance fails to end a running instance. 
    - Uses an enum for ChangeWindowMessageFilter filters. 
    
    Known issues with pull request:
    WM_QUIT will not exit the app safely (called from a new NVDA instance) when a dialog such as WelcomeDialog is still open
    seanbudd authored May 7, 2021
    Configuration menu
    Copy the full SHA
    9dc1f36 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    57f2791 View commit details
    Browse the repository at this point in the history
  4. Python Console: Jump to previous/next result (PR #9785)

    Fixes #9784
    
    Summary of the issue:
    In the output pane of the Python Console, it can be tedious to inspect a series of lengthy output results.
    
    Description of how this pull request fixes the issue:
    Provide key bindings to jump to the previous/next result, select a whole result and clear the output pane.
    
    Co-authored-by: Reef Turner <[email protected]>
    JulienCochuyt and feerrenrut authored May 7, 2021
    Configuration menu
    Copy the full SHA
    c22509b View commit details
    Browse the repository at this point in the history

Commits on May 9, 2021

  1. Developer Guide: Minor fixes (#12384)

    * Fix broken link to 7-zip
     * Add a missing internal link to the "Packaging code as NVDA Add-ons" section
     * Remove extraneous or trailing whitespace
    JulienCochuyt authored May 9, 2021
    Configuration menu
    Copy the full SHA
    f8c1826 View commit details
    Browse the repository at this point in the history
  2. EditableText: Do not treat "\r\n" as two characters when backspace

    …is pressed (#12379)
    
    In Notepad++, when hitting backspace to delete a line break, NVDA announces "blank" instead of "new line".
    The TextInfo of the Scintilla implementation may contain "\r\n" instead of "\n".
    The current implementation of EditableText._backspaceScriptHelper treats it as two characters and thus fails to trigger a proper announce.
    
    Description of how this pull request fixes the issue:
    Replace "\r\n" by "\n" before further treatment of the deleted chunk.
    JulienCochuyt authored May 9, 2021
    Configuration menu
    Copy the full SHA
    ef53fb5 View commit details
    Browse the repository at this point in the history
  3. Elements List dialog: Remove the accelerator key on the "Activate" bu…

    …tton (#6167) (#12369)
    
    Fixes #6167
    
    Summary of the issue:
    In the English locale, there is an accelerator key collision between the "Annotation" element type and the "Activate" button, both set to the letter "A".
    In the French locale, there is collision between the element type "Form field" ("Champs de formulaire") and the same button ("Activer"), both set to the letter "C".
    This changes the behavior of the accelerator key that focuses the radio button but does not activate it.
    This is not a bug at all, but is not ergonomically optimum, especially for less advanced users.
    
    Description of how this pull request fixes the issue:
    As suggested by @Qchristensen, remove the accelerator key setting from the "Activate" button as it is, when available, the default action of the dialog upon pressing the enter key.
    In most locale, this change should not raise the need for a new translation, as the "Activate" label already exists without an accelerator marker as "a message reported when the action at the position of the review cursor or navigator object is performed.".
    Just to be sure, I also added a warning in the translators comment for the button label to ask them to beware of the risk of collision.
    JulienCochuyt authored May 9, 2021
    Configuration menu
    Copy the full SHA
    e2c206d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8eff942 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    509b7fa View commit details
    Browse the repository at this point in the history

Commits on May 10, 2021

  1. Only run AppVeyor linting check on branches which aren't master (#12378)

    Master builds are currently failing at the linting step such as
    
    https://ci.appveyor.com/project/NVAccess/nvda/builds/39046507
    https://ci.appveyor.com/project/NVAccess/nvda/builds/39045879
    Lint checking doesn't need to occur for master builds
    
    Description of how this pull request fixes the issue:
    Don't run the appveyor lint checking on master branches
    seanbudd authored May 10, 2021
    Configuration menu
    Copy the full SHA
    a2a6e23 View commit details
    Browse the repository at this point in the history
  2. refactor of sayAllHandler into speech. (#12251)

    SpeechWithoutPauses is only used by sayAllHandler, but the code lies in speech\__init__.py. Due to code changes sayAllHandler needs to instantiate a SpeechWithoutPauses instance, and would either introduce a circular dependency or require a singleton to be created when the instance is needed.
    
    Description of how this pull request fixes the issue:
    - sayAllHandler is moved to a new module - speech.sayAll.
    - SpeechWithoutPauses is moved to it's own module
    - speech\__init__.py has been moved to speech\speech.py so that speech.sayAll can import the necessary functions from speech.
    - sayAllHandler top level functions have been refactor into a class. An instance of SayAllHandler is initialised when NVDA is started in a consistent manner with other initialisations in the code base.
    seanbudd committed May 10, 2021
    Configuration menu
    Copy the full SHA
    b95743d View commit details
    Browse the repository at this point in the history
  3. Merge pull request #12251 from nvaccess/sayAllHandler-refactor

    refactor of sayAllHandler into speech
    seanbudd authored May 10, 2021
    Configuration menu
    Copy the full SHA
    b60b974 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #12388 from nvaccess/beta

    Merge Beta (and translations) into master
    seanbudd authored May 10, 2021
    Configuration menu
    Copy the full SHA
    fa708d7 View commit details
    Browse the repository at this point in the history
  5. move changes to correct header (#12390)

    A changes item was accidentally added to the wrong release header in PR #11598
    
    Description of how this pull request fixes the issue:
    Move the changelog item to the correct release
    seanbudd authored May 10, 2021
    Configuration menu
    Copy the full SHA
    01605b6 View commit details
    Browse the repository at this point in the history

Commits on May 11, 2021

  1. In MS Word, fixed table quick navigation when include layout table op…

    …tion is enabled (#11899)
    
    Summary of the issue:
    In MS Word/Outlook browse mode, layout tables (i.e. tables with no border) are skipped when using table quick navigation key (T and shift+T), even if "Include layout tables" options is enabled in Browse mode settings.
    
    Description of how this pull request fixes the issue:
    In NVDAObjects\window\winword, I have modified the TableWinWordCollectionQuicknavIterator filter method so that the iterator returns a table if borders are enabled or if layout tables should be included.
    
    I have checked in nvdaHelper\remote\winword.cpp that the presence or the absence of a border was already the criterion that defines if a table is a layout table or not. (so nothing done in this file)
    
    Co-authored-by: buddsean <[email protected]>
    CyrilleB79 and seanbudd authored May 11, 2021
    Configuration menu
    Copy the full SHA
    a794a4e View commit details
    Browse the repository at this point in the history

Commits on May 12, 2021

  1. always reset speechWithoutPauses instance when sayAll cancelled (#12396)

    The function header for sayAllHandler is incorrect, and the behaviour of cancelling sayAll speech changed in #12251
    seanbudd authored May 12, 2021
    Configuration menu
    Copy the full SHA
    5d4e64f View commit details
    Browse the repository at this point in the history
  2. improve state management in speech.py (#12395)

    Summary of the issue:
    Using shift to resume speech after using shift to pause speech does not resume speech.
    
    This is because when isPaused is imported through speech\__init__.py it is does not reference the global variable used in speech.py
    
    Description of how this pull request fixes the issue:
    Removes the use of top level variables in speech.py in favour of a private dataclass to manage state, and an enum for certain modes. Constants (or rather, variables with names in all capitals) remain as is.
    seanbudd authored May 12, 2021
    Configuration menu
    Copy the full SHA
    8938ca4 View commit details
    Browse the repository at this point in the history
  3. Ensure not to maintain AccessibleTable2 when fetching child nodes whe…

    …n the underlying table has neither rows nor columns (#12360)
    
    When creating a virtual buffer and NVDA encounters a table, it wil render the children of that table. It keeps a reference to the IAccessibleTable2 interface of the table until it has found a cell in that table. However, when a table contains no cells (i.e. when it has neither rows nor columns) and it encounters an inner table in that table, that inner table is ignored and table navigation does not work.
    
    Description of how this pull request fixes the issue:
    This pr ensures that when row and column count are 0, the IAccessibleTable2 reference isn't used when rendering children. Therefore, for every child, the logic that checks for IAccessibleTable2 will apply and issue #12359 no longer occurs.
    As a bonus, I removed support for IAccessibleTable2 support. This support was left in the VBuf code to support older versions of Seamonkey. I verified that Seamonkey now uses a version of Gecko that also uses IAccessibleTable2.
    
    Co-authored-by: buddsean <[email protected]>
    LeonarddeR and seanbudd authored May 12, 2021
    Configuration menu
    Copy the full SHA
    11b9950 View commit details
    Browse the repository at this point in the history
  4. Move some helper functions from main IAccessibleHandler module to sat…

    …isfy Linter and decrease likelihood of circular imports (#12367)
    
    Summary of the issue:
    Linter complains about various imports in IAccessibleHandler not being at the top of file. In the current situation moving them to the top causes errors about imports from not fully initialized module.
    
    Description of how this pull request fixes the issue:
    At first I thought this can be solved by not importing NVDAObjects.IAccessible in the api module which is unused there anyway. Unfortunately removing this import just delayed the error but NVDA still was unable to start. Therefore I've moved parts of IAccessibleHandler which are imported by various other files in this package to two new files:
    
    types.py contains typing information for IAccessibleHandler
    utils.py contains various utility functions mostly introduced in #11521
    
    Co-authored-by: buddsean <[email protected]>
    lukaszgo1 and seanbudd authored May 12, 2021
    Configuration menu
    Copy the full SHA
    60bf94e View commit details
    Browse the repository at this point in the history
  5. prevent ExitDialog from being destroyed twice (#12403)

    the following error happens when exiting NVDA via NVDA+q exit dialog shows, then enter:
    
    DEBUG - core._closeAllWindows (18:25:34.959) - MainThread (8636):
    destroying main frame during exit process
    ERROR - unhandled exception (18:25:34.959) - MainThread (8636):
    Traceback (most recent call last):
      File "C:\work\repo\nvda\7\.venv\lib\site-packages\wx\core.py", line 3407, in <lambda>
        lambda event: event.callable(*event.args, **event.kw) )
    RuntimeError: wrapped C/C++ object of type ExitDialog has been deleted
    Description of how this pull request fixes the issue:
    Prevents ExitDialog from being destroyed twice
    seanbudd authored May 12, 2021
    Configuration menu
    Copy the full SHA
    5603440 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2021

  1. Add 2021.1 release blurb (PR #12376)

    Co-authored-by: Reef Turner <[email protected]>
    Co-authored-by: Bill Dengler <[email protected]>
    3 people authored May 13, 2021
    Configuration menu
    Copy the full SHA
    ea1b827 View commit details
    Browse the repository at this point in the history

Commits on May 14, 2021

  1. Safe screenshot names for system tests (#12410)

    If a test has a name with special characters, and the test fails, a screenshot is not generated
    
    Example: "Robot.chromeTests.Table in style display: table"
    
    Also teardown failed:
    OSError: Bad path: nvdaTestRunLogs\Robot.chromeTests-Table_in_style_display:_table-failedTest.png
    
    Description of how this pull request fixes the issue:
    replace special characters using url-style escaping from the screenshot filename
    seanbudd authored May 14, 2021
    Configuration menu
    Copy the full SHA
    5cbaad2 View commit details
    Browse the repository at this point in the history
  2. Lint changes for 2021.1 (#12411)

    ### Summary of the issue:
    
    - various code-fences are not formatted properly
    - inconsistent indentation on lists
    - inconsistent formatting of messages
    
    ### Description of how this pull request fixes the issue:
    
    - enforce `- Example changelog message. (#123[, #321])` format using the following regex to highlight conforming messages `(.*\. \((#[0-9]+(, )?)+\)$|  -.*)`
    - replace all usages of single ` with ``
    - standarise indentation for second level lists to use the recommend two spaces
    seanbudd authored May 14, 2021
    Configuration menu
    Copy the full SHA
    6511aa0 View commit details
    Browse the repository at this point in the history
  3. further fixes to changelog (#12414)

    @XLTechie pointed out several typos and minor fixes in #12412. Some of these fixes we would like to add quickly so translators can start on them.
    seanbudd authored May 14, 2021
    Configuration menu
    Copy the full SHA
    1007f9e View commit details
    Browse the repository at this point in the history