The game did get Tab, but the editor moved the keyboard focus to a
button at the same time. The next Space then pressed that button
instead of reaching the game. The key field of On key down could not
capture Tab at all, so an inventory on Tab could not be built.
- FocusManager asks tabBelongsElsewhere before it moves the focus.
The editor answers yes while the Game tab is in front, so Tab stays
with the game as long as no field has the focus.
- A widget can claim Tab through takesTab. The key capture button
does so while it is capturing, so On key down accepts Tab.
- The harness knows the key Tab.
Found on the way:
- The first version of check 20g left the Behavior tab in front, and
module 21 then failed in the chained run. 20g now goes back.
Tests:
- ./check.sh: 2746 tests, CHECK EXIT 0.
- e2e 20 has two new checks: Tab reaches the game and leaves the
keyboard with it, the key field captures Tab. Both failed against
the old bundle.
- GM_STEPS=19,20: all passed, 44 checks. The full local run with all
three topics of this push passed with 1543 checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>