mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-07-30 19:46:17 +00:00
Extend the embedded keyboard to napplet/nsite surfaces. The shim's IME agent now installs on any embedded surface (gated by __nappletImeProxy), reaching native over whichever transport it has — the direct bridge for the browser, the trusted shell relay for napplets — both through send(). - NappletContentServer gains an imeProxy flag that injects __nappletImeProxy before the shim; NappletHostService sets it (embedded), the full-screen NappletHostActivity leaves it off (native keyboard). - NappletHostService relays ime.* between the applet (via the shell bridge) and the client (MSG_IME_EVENT / MSG_IME_OP) — the shell already forwards all message types, so no change to the trusted shell page. - EmbeddedNappletController implements EmbeddedImeBridge, so EmbeddedTabLayer's RemoteImeView drives it exactly like the browser. Correct for a single nsite/napplet tab. Multiple simultaneous napplet tabs share the host service's single client/bridge pointer (same limitation as reload/back/ NIP-07 there) — making that per-tab needs the session-scoping the browser host already got; tracked as a follow-up. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MgMpRcWj6y82LxLiwcuzmN