Skip to content

Commit f3a917d

Browse files
Hongzhi Wenclaude
andcommitted
moved 分支拖拽取消时也传播 dragCancelled
cancelActiveDrag 不检查 hasMoved,已移动过的返回球被截图/blur/12s 超时中断时会走 finishDrag 的 moved 分支,而该分支原本只发普通 return-ball-drag-end、不带 dragCancelled, 导致 app-auto-goodbye.js 把这次「丢失释放」当真实拖拽结束、照常降级猫档/回猫,架空了 no-move 分支已加的取消处理。moved 分支两处 dispatch 补上 dragCancelled: suppressClick, 与 no-move 分支对偶。补一条静态断言守回归。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 6022f63 commit f3a917d

2 files changed

Lines changed: 7 additions & 2 deletions

File tree

static/app-ui.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2887,7 +2887,8 @@
28872887
detail: {
28882888
reason: 'return-ball-drag-end',
28892889
container: container,
2890-
movedDistancePx: movedDistancePx
2890+
movedDistancePx: movedDistancePx,
2891+
dragCancelled: suppressClick
28912892
}
28922893
}));
28932894
revealReturnBallDragWindow();
@@ -2905,7 +2906,8 @@
29052906
detail: {
29062907
reason: 'return-ball-drag-end',
29072908
container: container,
2908-
movedDistancePx: movedDistancePx
2909+
movedDistancePx: movedDistancePx,
2910+
dragCancelled: suppressClick
29092911
}
29102912
}));
29112913
revealReturnBallDragWindow();

tests/unit/test_avatar_return_button_idle_tiers_static.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,9 @@ def test_desktop_return_ball_drag_recovers_when_mouse_release_is_lost():
318318
assert "movedDistancePx: 0" in source
319319
assert "dispatchReturnBallClick();" in source
320320
assert "window.nekoPetDrag.stop(stopScreenX, stopScreenY)" in source
321+
# 已经移动过的拖拽被中断(截图/blur/超时)时也要传播取消标记,
322+
# 否则 moved 分支照常派发 drag-end,app-auto-goodbye 会当成真实释放降级猫档
323+
assert "dragCancelled: suppressClick" in source
321324

322325

323326
def test_return_button_drag_has_single_owner_per_runtime_path():

0 commit comments

Comments
 (0)