fix(launcher): M6.21 播放页返回诊断日志+阈值放宽(M6.20基础上) — 推卡

This commit is contained in:
AskaEth committed 2026-09-03 13:50:40 +08:00
1 parent cd9d9da3bd
commit e802cc678a
2 files changed
+16 -8

No files matched your search

+15 -7
View File
@@ -328,10 +328,17 @@ void run_now_playing(struct app *apps, int napps)
if (td_ok) {
int dx = tlx - tdx, dy = tly - tdy;
int adx = dx < 0 ? -dx : dx, ady = dy < 0 ? -dy : dy;
/* M6.21 诊断:打印该次抬手手势的完整输入与各判定结果(真机定位
* 「返回滑不出」根因——状态栏/通知中心已生效,惟返回未触发)。 */
int np_is_top = mnp_top_swipe_down(tdx, tdy, dx, dy, SB_BAR_H, 65);
int np_edge = meow_edge_back(tdx, dx, dy);
int np_anyright = (dx >= 40 && adx > ady);
logmsg("np up: down=(%d,%d) d=(%d,%d) adx=%d ady=%d top=%d edge=%d anyright=%d",
tdx, tdy, dx, dy, adx, ady, np_is_top, np_edge, np_anyright);
/* 顶部热区下滑 → 打开通知中心(与主界面同语义;mnp_top_swipe_down
* 内部已排除左缘 down_x<24,与下方返回手势互斥)。run_notif_center
* 为阻塞模态,返回后整页重画播放页。 */
if (mnp_top_swipe_down(tdx, tdy, dx, dy, SB_BAR_H, 65)) {
if (np_is_top) {
notif_click_t click;
memset(&click, 0, sizeof click);
click.app_idx = -1;
@@ -342,12 +349,13 @@ void run_now_playing(struct app *apps, int napps)
meow_ui_flush();
}
/* 左缘右滑返回(全局手势语义),或任意横向右滑返回——与主界面
* 「左滑进入 Now Playing」对称(main_menu 左滑仅要求 tx>=MEOW_EDGE_W,
* 返回却需精确落 24px 左缘带,用户反向右滑极易落空 → 滑不出来)。
* 播放页无横向分页内容、无进度条拖动(进度=点按,幅度<60 走 tap 分支),
* 故任意位置横向右滑恒判返回,安全。回到主界面(不清理媒体会话) */
else if (meow_edge_back(tdx, dx, dy) ||
(dx >= MEOW_EDGE_SWIPE && adx > ady)) break;
* 「左滑进入 Now Playing」对称。返回阈值 65→40 放宽(防用户右滑
* 幅度不足 65 判不中);播放页无横向分页内容、无进度条拖动
* (进度=点按,幅度<60 走 tap 分支),故任意位置横向右滑恒判返回。 */
else if (np_edge || np_anyright) {
logmsg("np: BACK break (edge=%d anyright=%d dx=%d)", np_edge, np_anyright, dx);
break;
}
if (adx < 60 && ady < 60) {
int cmd = np_btn_tap(tlx, tly);
if (cmd) { meow_media_playctl((uint32_t)cmd, 0); need_redraw = 1; }