First pass at handling menus in wine.
This commit is contained in:
1 parent
cc6523e6fd
commit
0992ffee0d
9 files changed
+520
-18
No files matched your search
@@ -0,0 +1,33 @@
|
||||
# Menu bridge integration
|
||||
|
||||
Build the project, then run `python3 tests/menu_integration.py --build-dir build`
|
||||
from the repository root in a graphical session. Dependencies are Wine,
|
||||
MinGW's x86_64 C compiler, PyGObject, and `dbus-run-session`.
|
||||
|
||||
The test creates a temporary Wine prefix and a private D-Bus service. Its
|
||||
64-bit PE application exercises the separately running Winelib helper's
|
||||
global menu hook, rather than calling helper functions inside the fixture.
|
||||
The test processes carry the managed-helper marker so the running Cthulhu
|
||||
supervisor does not start an additional helper in the test prefix.
|
||||
|
||||
Checks include actual keyboard navigation through File/Edit menus, a nested
|
||||
submenu and a context menu; displayed command shortcuts; checked and disabled
|
||||
items; escaped ampersands; duplicate menu selections and reopening; restored
|
||||
button focus; and exiting with both reader capabilities disabled. Additional
|
||||
`WM_MENUSELECT` messages exercise duplicate notifications deterministically.
|
||||
|
||||
The fixture window takes focus and closes automatically. Cleanup stops only
|
||||
the Wine server for the temporary prefix. The recorded events never reach the
|
||||
running reader's speech or braille service.
|
||||
|
||||
For live acceptance, rebuild/install the package and restart Cthulhu so it
|
||||
launches the updated helper. In a 64-bit Wine application, use Alt to reach
|
||||
File/Edit, arrows to move through commands and submenus, Escape to return, and
|
||||
Shift+F10 for a context menu where supported. Verify speech and braille contain
|
||||
the highlighted label, role, displayed shortcut, and checked/unavailable state,
|
||||
and that normal control reading resumes afterward. Test multiple Wine prefixes
|
||||
and reader shutdown separately. Automated event recording does not establish
|
||||
live listening or physical braille acceptance.
|
||||
|
||||
32-bit hook support, entirely custom menus without `WM_MENUSELECT`, and full
|
||||
object review are outside the current implementation.
|
||||
Reference in new issue
Block a user