Conversation
Branch for release 2020.4 PR #11910
* 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
Merge beta to alpha
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 <michaelDCurran@users.noreply.github.com> Co-authored-by: Reef Turner <feerrenrut@users.noreply.github.com>
- Translation updates - Fix for NVwave issue: #11968
…) 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.
…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 <mick@nvaccess.org>
…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.
… 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.
* 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
* Update nvda_dmp. * Add flush calls for completeness.
* Don't use UnidentifiedEdit for windows with empty windowText Fix-up of #8165 * Update what's new Co-authored-by: Michael Curran <mick@nvaccess.org>
* 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.
…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 <mick@nvaccess.org>
* Prevent running Windows 10 OCR if screen curtain is enabled. * Update what's new Co-authored-by: Michael Curran <mick@nvaccess.org>
#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
* 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 <mick@nvaccess.org>
* 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)
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.
…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.
… 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.
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
…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.
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.
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`
… 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 <seanbudd123@gmail.com>
…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.
Fixes: #12311 Co-authored-by: Reef Turner <reef@nvaccess.org>
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.
…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.
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
… 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 .
Fixes #12289 Co-authored-by: Reef Turner <reef@nvaccess.org>
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'
…#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).
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.
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
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 <reef@nvaccess.org>
* 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
…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.
…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.
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently blocked by #12251, #11912
Note: This must be a merge commit (not squash merge)