Repository navigation
fix(native): keep the composer focused when the iOS keyboard shows - #476
Conversation
The view wrapped the page in a keyboard-padding column only while the keyboard was up. Rune derives unkeyed element ids from their position, so the wrapper renamed every element, the focused composer included: focus dropped, the keyboard hid, the wrapper went away, and it looped. The wrapper is now always built, padded by 0 with the keyboard down, and the page-level paste handler moves to it as the new root. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Maple review🟢 Confidence 10/10 · safe to merge. Contained to the native host's render tree; the fix rests on Rune's element naming, which only the new Rust test pins and I could not run here. The native page is now always wrapped in the keyboard-padding column, so Rune's element ids stay put as the keyboard moves and the composer keeps focus; the paste handler with nothing focused moves to that wrapper, now the root.
Before merge
|
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
Coverage Report
File CoverageNo changed files found. |
|
Merged with 1 step from "Before merge" still open. If it is done, tick it on the review comment; if not, now is the time.
|
Main's HTML renders on iOS (MapleTechLabs#477) and keyboard focus (MapleTechLabs#476) meet the native islands: frames keep main's own covers, islands their layer-aware placement, and the iOS shell places both after every frame. Also clears the lint: the swipe back reads where the chevron leads from the element itself, the shell installs its controls on a global as the desktop shells install __TAURI__, and the menus' symbol tables keep their inferred types. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
On the iOS (Rune) app, opening the keyboard made the screen glitch repeatedly.
The view wrapped the page in a keyboard-padding column only while the keyboard was up. Rune names unkeyed elements by their position, so adding the wrapper renamed every element, the focused composer included (
#0/document/…became#0/#0/document/…). This made a loop:Fix
Tests
the_on_screen_keyboard_leaves_the_composer_focusedshows the keyboard, hides it and shows it again, and checks the composer stays focused. It failed before the fix and passes now.🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by CodeRabbit