Debugged mouse reporting for now. Remaining bugs are GPUI level bugs

This commit is contained in:
Mikayla Maki 2022-08-19 15:11:49 -07:00
parent cfbda00cc4
commit 1de68a724c
4 changed files with 179 additions and 125 deletions

View file

@ -237,6 +237,7 @@ impl Presenter {
let mut mouse_down_out_handlers = Vec::new();
let mut mouse_moved_region = None;
let mut mouse_down_region = None;
let mut mouse_up_region = None;
let mut clicked_region = None;
let mut dragged_region = None;
@ -283,6 +284,15 @@ impl Presenter {
}
}
for (region, _) in self.mouse_regions.iter().rev() {
if region.bounds.contains_point(position) {
invalidated_views.push(region.view_id);
mouse_up_region =
Some((region.clone(), MouseRegionEvent::Up(e.clone())));
break;
}
}
if let Some(moved) = &mut self.last_mouse_moved_event {
if moved.pressed_button == Some(button) {
moved.pressed_button = None;
@ -350,6 +360,17 @@ impl Presenter {
}
}
if let Some((mouse_up_region, region_event)) = mouse_up_region {
handled = true;
if let Some(mouse_up_callback) =
mouse_up_region.handlers.get(&region_event.handler_key())
{
event_cx.with_current_view(mouse_up_region.view_id, |event_cx| {
mouse_up_callback(region_event, event_cx);
})
}
}
if let Some((clicked_region, region_event)) = clicked_region {
handled = true;
if let Some(click_callback) =