only trigger onmousemove if the position has changed

This commit is contained in:
Evan Almloff committed 2022-05-06 17:01:50 -05:00
1 parent b8c739826a
commit e3757f97ed
1 file changed
+18 -16
+18 -16
View File
@@ -242,23 +242,25 @@ impl InnerInputState {
{ {
// mousemove // mousemove
let mut will_bubble = FxHashSet::default(); if old_pos != Some(new_pos) {
for node in dom.get_listening_sorted("mousemove") { let mut will_bubble = FxHashSet::default();
let node_layout = layout.layout(node.state.layout.node.unwrap()).unwrap(); for node in dom.get_listening_sorted("mousemove") {
let previously_contained = old_pos let node_layout = layout.layout(node.state.layout.node.unwrap()).unwrap();
.filter(|pos| layout_contains_point(node_layout, *pos)) let previously_contained = old_pos
.is_some(); .filter(|pos| layout_contains_point(node_layout, *pos))
let currently_contains = layout_contains_point(node_layout, new_pos); .is_some();
let currently_contains = layout_contains_point(node_layout, new_pos);
if currently_contains && previously_contained { if currently_contains && previously_contained {
try_create_event( try_create_event(
"mousemove", "mousemove",
Arc::new(prepare_mouse_data(mouse_data, node_layout)), Arc::new(prepare_mouse_data(mouse_data, node_layout)),
&mut will_bubble, &mut will_bubble,
resolved_events, resolved_events,
node, node,
dom, dom,
); );
}
} }
} }
} }