Ported examples 00 and 01 to proc macro interface.
This commit is contained in:
@@ -114,7 +114,7 @@ impl PointerRouter {
|
||||
|
||||
match event.kind {
|
||||
PointerEventKind::Move => {
|
||||
if let Some(target) = hit_target.clone() {
|
||||
if let Some(target) = self.pressed.clone().or(hit_target.clone()) {
|
||||
routed.push(RoutedPointerEvent {
|
||||
kind: RoutedPointerEventKind::Move,
|
||||
target,
|
||||
@@ -314,6 +314,36 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn router_prefers_pressed_target_on_pointer_move() {
|
||||
let mut router = PointerRouter::new();
|
||||
let tree = interaction_tree();
|
||||
let _ = router.route(
|
||||
&tree,
|
||||
PointerEvent::new(
|
||||
0,
|
||||
Point::new(20.0, 20.0),
|
||||
PointerEventKind::Down {
|
||||
button: PointerButton::Primary,
|
||||
},
|
||||
),
|
||||
);
|
||||
let routed = router.route(
|
||||
&tree,
|
||||
PointerEvent::new(0, Point::new(160.0, 20.0), PointerEventKind::Move),
|
||||
);
|
||||
|
||||
assert!(
|
||||
routed
|
||||
.iter()
|
||||
.any(|event| event.kind == RoutedPointerEventKind::Move)
|
||||
);
|
||||
assert_eq!(
|
||||
routed.last().unwrap().target.element_id,
|
||||
Some(ElementId::new(1))
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn router_routes_scroll_to_deepest_hover_target() {
|
||||
let mut router = PointerRouter::new();
|
||||
|
||||
Reference in New Issue
Block a user