Hover walk: no arg1, held during a move, no fling, published mouseover (#941)
Four pointer defects: OnEnter and OnLeave set `arg1 = true`; a frame being moved or sized still ran the hover walk; the pointer leaving the window fed `f32::MIN` to a move in flight, flinging the frame off-screen; and the mouseover token read the world pick, not the published mouseover. In 1.12.1 both scripts run through `0x702690`, which sets no arg global. While `[root+0xcfc]` holds a move or size target, the walk pumps it (`0x7655b0`) and returns before any probe (`0x766164`–`0x7661a0`); a hide clears that slot (`0x76492e`). The pump only sees real cursor events. The token resolver reads the published pair `[0xb4e2c8]` (`0x515970`). OnEnter and OnLeave fire with no arguments, `mouse_move` pumps a move or size and returns, a hide ends it, the pointer leave has its own call, and the aura feed reads the published mouseover. Tests bite on the parent for each. Fixes #932 Fixes #933 Fixes #936 Fixes #938 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
0fc40d3f87
commit
73623e31fa
@@ -194,7 +194,7 @@ pub(super) fn feed_ui_input(
|
||||
// The OS pointer left: leave the hovered frame once, and disarm any press or drag every
|
||||
// frame, since no release ends it and a stale gesture would fire on re-entry.
|
||||
if hover.0.take().is_some() {
|
||||
script.mouse_move(f32::MIN, f32::MIN);
|
||||
script.pointer_left_hover();
|
||||
}
|
||||
script.pointer_left_window();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user