Repository navigation
Key input follows the client's walks; stock login takes typing - #1027
Merged
Merged
Conversation
The EditBox ctor enables char and key input (0x779ced, 0x779cf8) and the WorldFrame's key input (0x481b09); benilla created every frame inert, so a keyboard frame such as AccountLogin took each key before the focused box. Boxes are now frames in both walks at their own strata and level: the focused one consumes, an unfocused one declines, and with none focused the first autoFocus box in walk order takes the focus and the key (0x77a917). Fixes #179 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reference reads the four agreement CVars (0x46a400 at 0x402b36) before SET_GLUE_SCREEN (0x402b65). benilla set the login screen first, on default flags, and seeded them a frame later, so a returning player saw the EULA again. The glue VM and the manager now take them from the CVar registry as the VM is built, and the install waits for the CVar load. Fixes #1003 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MovieFrame_OnShow raised on the unbuilt movie verbs, leaving a black screen. Build GetMovieSubtitles (0x46dbc0), GetMovieResolution (0x46cf10), HideCursor and ShowCursor (0x46db70, 0x46db60), the MovieFrame methods StartMovie, StopMovie and EnableSubtitles (0x78d770, 0x78d870, 0x78d940) and its three OnMovie* scripts (0x78c2e0). Deviation: no movie plays (#968), so StartMovie answers nil and the stock Lua hides the frame and returns to login. The key-up dispatcher (0x765fd0) runs OnKeyUp on the frame that consumed the key's last down (recorded at 0x765fa2); the host now feeds releases. Fixes #1004 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The stock GlueDialogEditBox draws two 75-pixel caps that meet at its own 130 pixels; the dialog widens it to 300, which left the middle empty. The widened box now takes the chat box's stretched middle piece (ChatFrame.xml:41-55) between the caps, hidden again when the stock box returns. Fixes #1005 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A box declines PRINTSCREEN and, in alt-arrow mode without ALT, the four arrows before it looks at focus (0x77b17f, 0x77b18e-0x77b1c4), so the walk goes on below it: a split dialog or colour picker under the chat box takes the arrow, and a declined key grants no focus. The host now feeds one walk per press (0x765f10) and acts on the box it reached, not the focused one; a frame that took a key keeps its paste, copy and editing from the box. The key-up goes only to a linked consumer (0x76bba7); a press a binding ran makes the world frame its consumer (0x483b70); an auto-repeat goes to the consumer's +0x58 (0x766070), a stub on a frame and the key-down on a box (0x77b770). Modifiers walk as SHIFT, CTRL and ALT, unnamed keys as UNKNOWN (0x76b7d0). PRINTSCREEN's binding runs while typing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The XML walker enables the char bucket for OnChar (0x769f6b) and the key bucket for OnKeyDown and OnKeyUp (0x769fa4), each alone; benilla set both. The walk's tie order was the draw list's link order. A bucket entry is inserted after its equals (0x764aa0) when the frame links, when a level or strata change takes it out and in again (0x76a470, 0x76a4f0), and when EnableKeyboard sets a bit on a linked frame (0x76af00). Each bucket now stamps those, so a frame enabled later walks after the ones already there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The reference hands Alt+F4 to DefWindowProc (0x42d261-0x42d276), whose SC_CLOSE becomes the kind-5 quit event (0x42d287) and quits at once (0x423a21 -> 0x423ca0 -> 0x41f5d0 -> 0x422030). A tiling window manager binds nothing to it, so benilla reads F4 with Alt held before the loading cover swallows input and writes the primary window's close request, which the shutdown tail serves. Deviation: the reference relies on the OS for this. Not on macOS (Cmd+Q). Fixes #1019 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A held movement key no longer stalls after an alt-tab: the feed decides repeat from a pressed-key list with the bindings' reconcile (0x424790, 0x4248b3), not winit's flag, so the first repeat is a fresh press. The repeat dispatcher (0x766070) reports consumed whenever a consumer is on record and a box grants autoFocus before its key-down may decline (0x77b799). Keys the client drops before any walk (Command, fn, Windows, Menu, media keys; 0x42da39, Mac table 0x5bf320) no longer walk as UNKNOWN or grant a box focus; only 0x210/0x211 are UNKNOWN. A box that took a key eats its binding (0x77b1db -> 0x77b35e); the char walk gates none. In the world the key-up is sent from the bindings pass in event order with the press that made the world frame the consumer. PRINTSCREEN's up with no consumer runs the key-down walk and, undeclined, its binding (0x76603c-0x76604d), as Windows sends that key as an up alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Key input follows the client's walks: key-down (
0x765f10), char (0x765df0), key-up to the recorded consumer (0x765fd0) and repeat (0x766070).0x779ced), so the stock login's boxes take typing; only a focused box consumes. A box declines PRINTSCREEN and unaltered arrows on anignoreArrowsbox, so stack-split steps under a focused chat box. A binding's press records the world frame.Fixes #179
Fixes #1003
Fixes #1004
Fixes #1005
Fixes #1019
🤖 Generated with Claude Code
🤖 Generated with Claude Code