Skip to content

Commit f06aad0

Browse files
committed
docs: add tap gesture combining guide
1 parent 4970fad commit f06aad0

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

docs/two-thumb-step-one.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Tap + Gesture Combining (Step One)
2+
3+
LeanType can optionally accept a tap from one finger and a simultaneous gesture from another finger as part of the same current word. This is a small first step toward two-thumb typing support.
4+
5+
The feature is intentionally conservative: it does not keep a word open after all fingers leave the keyboard, and it does not add spacing, grace timers, or delayed commit behavior.
6+
7+
## Enable it
8+
9+
Open **Settings → Gesture Typing** and enable:
10+
11+
1. **Combine simultaneous tapping and additional gestures**
12+
2. Optional: **Draw taps and gestures**
13+
14+
Both settings default to off.
15+
16+
## How it works
17+
18+
With the combine setting enabled:
19+
20+
- A gesture may bypass the rapid-typing suppression only when another pointer is still active.
21+
- The previous input must have been a letter.
22+
- The normal upstream word boundary remains unchanged: once all fingers are lifted, the next gesture starts a new word.
23+
24+
This means overlapping multi-pointer input is allowed, but a later single-finger tap → swipe sequence is not treated as part of the same word.
25+
26+
## Example
27+
28+
A supported sequence is:
29+
30+
1. Press or tap a letter with one thumb.
31+
2. While at least one finger is still active, start a gesture with another finger.
32+
3. Lift normally to finish the gesture.
33+
34+
An out-of-scope sequence is:
35+
36+
1. Tap a word.
37+
2. Lift all fingers.
38+
3. Tap space.
39+
4. Start a new single-finger gesture.
40+
41+
That remains normal gesture typing for the next word and keeps the usual rapid-typing guard.
42+
43+
## Debug drawing
44+
45+
The optional **Draw taps and gestures** setting draws a lightweight diagnostic overlay:
46+
47+
- tap points are shown as points
48+
- gesture samples are drawn as a simple path
49+
50+
The overlay is for manual testing and debugging only. It does not affect committed text or suggestions.
51+
52+
The overlay clears when a new pointer sequence starts, when gesture input is cancelled, and when debug drawing is disabled.
53+
54+
## Scope limits
55+
56+
This step deliberately avoids the larger two-thumb model from downstream forks:
57+
58+
- no phantom spaces
59+
- no grace timers
60+
- no delayed commit after all fingers lift
61+
- no re-recognition of prior taps
62+
- no custom spacing behavior
63+
- no synthetic point insertion
64+
65+
Those can be evaluated separately after the minimal mixed-input gate has proven useful.
66+
67+
## Implementation notes
68+
69+
The feature adds two cached settings in `SettingsValues` and a small `TapGestureDrawingPreview`. `PointerTracker` passes a new `ignoreFastTypingCooldown` flag to `BatchInputArbiter` only when overlapping multi-pointer tap+gesture input is active.
70+
71+
`BatchInputArbiter` keeps the original five-argument `addDownEventPoint` as the default path, so existing callers preserve upstream behavior.

0 commit comments

Comments
 (0)