ime.characterBoundsRequest event
系统输入法需要定位候选窗口或辅助 UI 时,请求当前 revision 中有限范围的字符矩形。
Event payload
{ handle, revision: u64, range: { start: u32, end: u32 } }
Examples
host.events.on('ime.characterBoundsRequest', async ({ revision, range }) => {
if (revision !== editor.revision) return;
await host.ime.updateGeometry(session, {
revision,
editorBounds: layout.editorBounds,
caretBounds: layout.caretBounds,
characterBounds: layout.boundsFor(range),
});
});
Delivery rules
范围使用 UTF-16 code unit offset 且端点必须在 Unicode 标量边界。guest 可以只返回已布局标量的 { index, rect } 项;缺项明确表示当前没有几何,不能用虚假零矩形代替。
Requirements
- 事件声明:
ime.characterBoundsRequest - 来源:活动 ime-session 句柄
- 信任档位:继承
ime.openSession的 green