fix(launcher): M6.22 播放页返回根因修复 — np_exit 退出外层主循环(break错层级) — 推卡

This commit is contained in:
AskaEth committed 2026-09-03 14:00:28 +08:00
1 parent e802cc678a
commit e448b9bfda
2 files changed
+6 -2

No files matched your search

+5 -1
View File
@@ -293,6 +293,8 @@ void run_now_playing(struct app *apps, int napps)
unsigned long long last_prog = now_ms();
unsigned long long np_last_status_tick = now_ms(); /* M6.20:播放页状态栏时钟 1s 刷新(主界面同语义) */
int need_redraw = 1;
int np_exit = 0; /* M6.22:返回手势命中 → 置位退出外层主循环。触摸内的 break 只跳出内层
* 读事件 while,不退出外层 while(!sigterm_flag),故必须靠标志跳出(根因:返回「没反应」)。 */
char last_title[128] = "";
uint32_t last_state = 0xFFFFFFFFu;
char last_app[MEOW_APP_ID_MAX] = "";
@@ -302,6 +304,7 @@ void run_now_playing(struct app *apps, int napps)
meow_ui_flush();
while (!sigterm_flag) {
if (np_exit) break; /* M6.22:返回手势已命中 → 退出本页,走尾部收尾回主界面 */
meow_ipc_process();
meow_media_tick();
unsigned long long now = now_ms();
@@ -354,7 +357,8 @@ void run_now_playing(struct app *apps, int napps)
* (进度=点按,幅度<60 走 tap 分支),故任意位置横向右滑恒判返回。 */
else if (np_edge || np_anyright) {
logmsg("np: BACK break (edge=%d anyright=%d dx=%d)", np_edge, np_anyright, dx);
break;
np_exit = 1;
break; /* 仅跳出内层读事件 while;外层主循环靠 np_exit 退出 */
}
if (adx < 60 && ady < 60) {
int cmd = np_btn_tap(tlx, tly);