Descovered a but on Slint where if the reported sizes differ preferences would not rport. HOpefully fixed. This could probably affect more than just Slint, just happened to catch it there.

This commit is contained in:
Storm Dragon committed 2026-11-01 14:33:50 -05:00
1 parent 7591f65b58
commit d0fdce7285
9 files changed
+90

No files matched your search

+28
View File
@@ -47,3 +47,31 @@ check pitch and volume with the quick speech keys, then save and reopen the
settings. Values such as 4.5 must remain 4.5 in announcements and TOML rather
than exposing floating-point tails. Check all voice types and custom key echo;
untouched inherited values must remain unset.
## Preferences focus with differing window bounds
On Slint/i3, GTK can report a frame at (0,0), sized 1916×994, while X11
reports its client at (2,18), sized 1912×974. Rejecting that frame by geometry
silences control announcements even though Tab still moves focus. The reader
registers the PID of its own preferences helper until the helper exits. That
helper can bypass the geometry comparison when X11 identifies the same
foreground process and GTK reports an active, showing, non-iconified window.
Other applications retain the normal foreground correlation checks.
The adapter dropdown regression also checks that preferences activation and
focused-control events are accepted:
```sh
go test ./internal/atspi ./internal/app -count=1
CTHULHU_BINARY=/tmp/cthulhu-speech-preferences CTHULHU_PREFS_ADAPTER_ONLY=1 python3 tests/native_preferences.py
```
On the affected Slint desktop, use the rebuilt reader to open preferences.
Tab and Shift+Tab through controls, switch notebook pages with Ctrl+PageUp and
Ctrl+PageDown, open a dropdown, change its selection, and close it with Escape.
Confirm each control's name and value is announced. Apply a change, close and
reopen preferences, and confirm it persists. Switch to another application
while preferences remains open: speech and Braille must follow that application,
then resume preferences announcements when returning. Repeat after closing and
reopening preferences and after changing window size. Private X11 tests do not
establish physical-key, audible-speech or Braille acceptance on Slint.