EditBox caret keys, selection and focus blink follow 1.12.1 (#750)
Several EditBox keys differed from 1.12.1: - Up/Down did nothing in a multi-line box; - Home/End went to the text's ends; - `HighlightText` and Ctrl+A moved the caret; - focus did not restart the blink; - a non-digit kept a numeric box's selection; - Option+Up could not recall chat history on a Mac. In 1.12.1, Up/Down move a wrapped row, keeping the letter column (`0x77cb20`), or recall history in a single-line box with any modifier but Shift. Home/End stop at a newline (`0x77c980`, `0x77c9f0`). `HighlightText` writes only the selection (`0x77cca0`), and Shift extends by `0x77cd10`. Focus restarts the blink (`0x77dd68`), and Insert deletes the selection before its digit test (`0x77bf41`). benilla now does each. Down onto the last row lands at the end, and history stays shell-style, both deviations. Tests cover each key, in the engine and the stock mail and ticket boxes. Fixes #735 Fixes #736 Fixes #737 Fixes #738 Fixes #745 Fixes #747 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
be9e3d8aac
commit
f22ec0016c
@@ -1058,7 +1058,7 @@ impl UiScript {
|
||||
/// Whether the focused EditBox is in alt-arrow mode (XML `ignoreArrows`, Lua
|
||||
/// `SetAltArrowKeyMode`, `[editbox+0x318] & 0x10`): without ALT the reference declines the four
|
||||
/// arrows (`0x77b1c4`), so they reach the world's bindings and turn the player while chat has
|
||||
/// focus. The gate is on the key, not the [`EditAction`]: HOME and END also move to an edge.
|
||||
/// focus. The gate is on the key, not the [`EditAction`]: HOME and END also move the caret.
|
||||
pub fn editbox_alt_arrow_mode(&self) -> bool {
|
||||
let model = self.model_ref();
|
||||
model.focused_editbox.is_some_and(|h| {
|
||||
|
||||
Reference in New Issue
Block a user