wgui: event results/blocking for overlapping content, rev iterate events for root node
This commit is contained in:
@@ -11,7 +11,7 @@ use crate::{
|
||||
util::centered_matrix,
|
||||
},
|
||||
widget::{
|
||||
WidgetData,
|
||||
EventResult, WidgetData,
|
||||
label::{WidgetLabel, WidgetLabelParams},
|
||||
rectangle::{WidgetRectangle, WidgetRectangleParams},
|
||||
util::WLength,
|
||||
@@ -159,7 +159,7 @@ fn register_event_mouse_enter<U1, U2>(
|
||||
true,
|
||||
));
|
||||
state.borrow_mut().hovered = true;
|
||||
Ok(())
|
||||
Ok(EventResult::Pass)
|
||||
}),
|
||||
);
|
||||
}
|
||||
@@ -183,7 +183,7 @@ fn register_event_mouse_leave<U1, U2>(
|
||||
false,
|
||||
));
|
||||
state.borrow_mut().hovered = false;
|
||||
Ok(())
|
||||
Ok(EventResult::Pass)
|
||||
}),
|
||||
);
|
||||
}
|
||||
@@ -211,14 +211,15 @@ fn register_event_mouse_press<U1, U2>(
|
||||
true,
|
||||
);
|
||||
|
||||
if state.hovered {
|
||||
state.down = true;
|
||||
}
|
||||
|
||||
common.alterables.trigger_haptics();
|
||||
common.alterables.mark_redraw();
|
||||
|
||||
Ok(())
|
||||
if state.hovered {
|
||||
state.down = true;
|
||||
Ok(EventResult::Consumed)
|
||||
} else {
|
||||
Ok(EventResult::Pass)
|
||||
}
|
||||
}),
|
||||
);
|
||||
}
|
||||
@@ -244,6 +245,9 @@ fn register_event_mouse_release<U1, U2>(
|
||||
false,
|
||||
);
|
||||
|
||||
common.alterables.trigger_haptics();
|
||||
common.alterables.mark_redraw();
|
||||
|
||||
let mut state = state.borrow_mut();
|
||||
if state.down {
|
||||
state.down = false;
|
||||
@@ -253,12 +257,10 @@ fn register_event_mouse_release<U1, U2>(
|
||||
{
|
||||
on_click(common, ButtonClickEvent {})?;
|
||||
}
|
||||
Ok(EventResult::Consumed)
|
||||
} else {
|
||||
Ok(EventResult::Pass)
|
||||
}
|
||||
|
||||
common.alterables.trigger_haptics();
|
||||
common.alterables.mark_redraw();
|
||||
|
||||
Ok(())
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user