Debugged mouse reporting for now. Remaining bugs are GPUI level bugs
This commit is contained in:
parent
cfbda00cc4
commit
1de68a724c
4 changed files with 179 additions and 125 deletions
|
@ -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(®ion_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) =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue