mirror of
https://github.com/lhns/steam-frame-nix.git
synced 2026-10-06 01:00:13 +02:00
VR keyboard swipe: only the pressing controller's laser builds the path
With both controllers on the keyboard, the idle one's hover (mouse events,
pointerId 1) arrived during the other's press and went into the swipe path
("tust" for "test"). A gesture now belongs to the contact that started it
(touch identifier, pointerId or mouse; gesture-input.js): other contacts'
moves, releases and cancels are ignored, a second press meanwhile stays
Steam's tap. Test with a recorded two-controller swipe.
This commit is contained in:
1 parent
26641d76a0
commit
7d050b8c44
8 files changed
+376
-40
No files matched your search
+2
-1
@@ -104,12 +104,13 @@ modules/
|
||||
swipe-decoder.js Steam (argument of patch.js): swipe path -> words
|
||||
textmodel.js Steam (argument of patch.js): what the keyboard typed
|
||||
corrector.js Steam (argument of patch.js): corrections, completions
|
||||
gesture-input.js Steam (argument of patch.js): a gesture's own events
|
||||
suggestions-panel/
|
||||
patch.js, unpatch.js SteamVR: the strip as a panel above/below the keyboard
|
||||
relay.mjs service vr-keyboard-relay: strip state Steam <-> SteamVR
|
||||
dictionary.nix, gen-dict.py build: dictionary from wordfreq + Hunspell
|
||||
check.nix, tests/ test (also built before the patch): text model,
|
||||
corrector, swipe-decoder accuracy
|
||||
corrector, swipe-decoder accuracy, gesture input
|
||||
dashboard-windows.nix, dashboard-windows/ SteamVR: window scale/distance limits
|
||||
steam-close-button.nix, steam-close-button/ SteamVR: X on the Steam window
|
||||
window-curvature.nix, window-curvature/ SteamVR: curvature wheel
|
||||
|
||||
+8
-2
@@ -101,6 +101,9 @@ default):
|
||||
release on the last. The word is typed with a space before it if needed
|
||||
(`text.autoSpace`); alternatives show in the strip. `'` and `-` are typed,
|
||||
not swiped.
|
||||
With both controllers on the keyboard, a swipe follows only the
|
||||
controller that pressed; the other one's laser doesn't enter its path,
|
||||
and its presses meanwhile are plain taps.
|
||||
- **Suggestions** never change text by themselves: a finished tapped word
|
||||
that isn't in the dictionary gets corrections (itself first;
|
||||
`autocorrect`), a word being tapped gets completions (the typed letters
|
||||
@@ -141,7 +144,9 @@ via its xdotool helper).
|
||||
changes them the keyboard stays stock (see
|
||||
[after a Steam update](ui-patches.md#after-a-steam-update)). Accented words
|
||||
of other languages are in the dictionary but only swipable where the layout
|
||||
has the letters.
|
||||
has the letters. With two controllers on the keyboard, SteamVR sometimes
|
||||
sends no laser movement for a press (seen for the controller that didn't
|
||||
own the keyboard's cursor just before): that press stays a tap.
|
||||
|
||||
**Remove when** Steam's VR keyboard gets swipe typing and suggestions.
|
||||
|
||||
@@ -162,7 +167,8 @@ has the letters.
|
||||
- Found by signature (entries `vr-keyboard`, `vr-keyboard-panel`).
|
||||
|
||||
**Tests:** `nix flake check` (checks `vr-keyboard`: text model, corrector,
|
||||
decoder accuracy on German + English) and `keyboard.vr.checks` for the
|
||||
decoder accuracy on German + English,
|
||||
gesture input from two controllers) and `keyboard.vr.checks` for the
|
||||
configured dictionary.
|
||||
|
||||
**Debugging:** `window.__sfuiSwipeLog` and `__sfuiSwipePaths` in Steam's
|
||||
|
||||
Reference in new issue
Block a user