Skip to content

Combining emulated keys via a braille display ignores "gestures.ini" #8149

@DrSooom

Description

@DrSooom

NVDA Version: nvda_snapshot_try-i8106-14994,fcd1ac68
Run as portable version. (It doesn't contain my huge "gestures.ini" file from my installed NVDA version. Well, it doesn't contain anything from the installed version at all.)
Braille display: Optelec ALVA BC680 (firmware: 3.0.2, connected via USB2 to the PC)

Default key mapping ("gestures.ini" doesn't exist):
Current Result: SP2 = ALT; SPLeft = Left Arrow; SP2+SPLeft = ALT+Left Arrow

Then open the input gestures window and delete the SP2 entry allocated with the ALT key (emulated hotkeys).

The "gestures.ini" now exists and contains the following line: "None = br(alva):sp2" (line 2).

Current Result: SP2 = [none]; SPLeft = Left Arrow; SP2+SPLeft = ALT+Left Arrow
Expected Result: SP2 = [none]; SPLeft = Left Arrow; SP2+SPLeft = [none]

then open the input gestures window again an allocate BC680-SP2 with the command to say the current time and date.

The following line was added in the "gestures.ini" below line 2: "dateTime = br(alva.bc680):sp2"

Current Result: SP2 = dateTime; SPLeft = Left Arrow; SP2+SPLeft = ALT+Left Arrow
Expected Result: SP2 = dateTime; SPLeft = Left Arrow; SP2+SPLeft = [none]

Then delete the "dateTime" via the input gesture window and allocate this command with SP2. The 2nd line with the "None" entry in the "gestures.ini" was deleted now.

The 2nd line contains the following: "dateTime = br(alva):sp2". The 3rd line was of course deleted too.

Current Result: SP2 = dateTime; SPLeft = Left Arrow; SP2+SPLeft = ALT+Left Arrow
Expected Result: SP2 = dateTime; SPLeft = Left Arrow; SP2+SPLeft = [none]

Then open the "gestures.ini" directly in Notepad++ (or any other source code editor) and add the following line followed by an empty line: "None = br(alva):sp2+spleft". After saving this file restart NVDA.

Current Result: SP2 = dateTime; SPLeft = Left Arrow; SP2+SPLeft = ALT+Left Arrow
Expected Result: SP2 = dateTime; SPLeft = Left Arrow; SP2+SPLeft = [none]

And the last step: Open the input gestures window and add SP2+SPLeft to the "dateTime" entry. The "None" line in the "gestures.ini" was deleted after that. The 2nd line contains the following: "dateTime = br(alva):sp2+spleft, br(alva):sp2".

Current Result: SP2 = dateTime; SPLeft = Left Arrow; SP2+SPLeft = dateTime
Expected Result: SP2 = dateTime; SPLeft = Left Arrow; SP2+SPLeft = dateTime

This new bug in NVDA 2018.1 might be the accidently result of #7783. It can be solved if NVDA considers the "gestures.ini" as well as checks if all pressed keys on the braille display are allocated with an emulated key. If only one of those pressed keys on the braille display is not allocated with an emulated key NVDA shouldn't combine emulated keys.

I just now tested the whole thing with two keys on my ALVA BC680 via the USB2 port and within changing the allocations of only two commands to keep it simple. There are thousands of combinations which can be pressed alone with the ALVA BC680. And by the way I don't think that this is an ALVA specific issue. For me it looks more like a general issue in this new function.

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/braillep4https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions