fix(perf+sdk/ime): ①perf net_json 缺 network 对象闭合括号 → 全量 JSON 根对象不闭合/非法(MeowPanel /api/system jv_parse 失败根因,真机+python 双重证实)②IME flush 挂起(meow_gfx_flush_hold): 阻塞循环整周期只记脏、IME画完一次原子上屏,根治 on_tick 进度条与键盘同区两刷频闪 ③TextField on_change 只标脏不重画→改 meow_ui_invalidate 真重画,输入实时回显
meow_svc_perf fa073bf9→7ea196de; meow_ui.a d814d0ed→ece0ecdb; hello 2ce09466→f45ba051; launcher 9ca4c5e8→bd37c8b0(重链) 宿主验证: test_ime_fix/test_p1p2p3_repro/test_meow_ui_widgets 全 PASS; perf_host all 输出经 python json 校验合法
This commit is contained in:
1 parent
08c70aa14c
commit
896f391fee
9 files changed
+23
-5
No files matched your search
@@ -268,6 +268,10 @@ int meow_ui_text_input(meow_ime_ctx *ctx)
|
||||
meow_ui_text_input_async(ctx);
|
||||
/* 阻塞循环:直到 done;on_change 由 handle_tap 触发 */
|
||||
while (meow_ime_active()) {
|
||||
/* flush 挂起:整个周期内(事件处理触发的 on_change 重绘 + App on_tick 重绘)
|
||||
* 只记脏不上屏;IME 画完后一次 flush 原子上屏——否则 on_tick 的 invalidate
|
||||
* 会先把进度条等区域刷上屏盖住键盘,IME 随后再盖回,同区一帧两刷→频闪。 */
|
||||
meow_gfx_flush_hold(1);
|
||||
meow_input_ev e;
|
||||
while (meow_input_pop(&e)) {
|
||||
meow_ui_activity_ping(); /* M2.71-bug5:IME 打字交互也重置息屏计时 */
|
||||
@@ -277,6 +281,7 @@ int meow_ui_text_input(meow_ime_ctx *ctx)
|
||||
* 顺序要求:先喂 on_tick(App 重绘进 back_buf)→ 再 meow_ime_draw(IME 面板随后盖上去),
|
||||
* 保证 IME 面板覆盖在最上,不被 App 的 d_paint_region 覆盖。 */
|
||||
meow_ui_feed_tick();
|
||||
meow_gfx_flush_hold(0);
|
||||
meow_ime_draw();
|
||||
meow_ui_flush();
|
||||
usleep(16000);
|
||||
|
||||
Reference in new issue
Block a user