Updated drag API to pass old,new, instead of delta,new

This commit is contained in:
Mikayla Maki 2022-07-07 16:07:24 -07:00
parent baa011ccf4
commit 9fd2bf2fa1
2 changed files with 8 additions and 10 deletions

View file

@ -306,11 +306,8 @@ impl Presenter {
.as_ref() .as_ref()
.zip(self.prev_drag_position.as_mut()) .zip(self.prev_drag_position.as_mut())
{ {
dragged_region = Some(( dragged_region =
clicked_region.clone(), Some((clicked_region.clone(), *prev_drag_position, position));
position - *prev_drag_position,
position,
));
*prev_drag_position = position; *prev_drag_position = position;
} }
@ -369,11 +366,11 @@ impl Presenter {
} }
} }
if let Some((dragged_region, delta, position)) = dragged_region { if let Some((dragged_region, prev_position, position)) = dragged_region {
handled = true; handled = true;
if let Some(drag_callback) = dragged_region.drag { if let Some(drag_callback) = dragged_region.drag {
event_cx.with_current_view(dragged_region.view_id, |event_cx| { event_cx.with_current_view(dragged_region.view_id, |event_cx| {
drag_callback(delta, position, event_cx); drag_callback(prev_position, position, event_cx);
}) })
} }
} }

View file

@ -188,12 +188,13 @@ impl Sidebar {
}) })
.with_cursor_style(CursorStyle::ResizeLeftRight) .with_cursor_style(CursorStyle::ResizeLeftRight)
.on_mouse_down(|_, _| {}) // This prevents the mouse down event from being propagated elsewhere .on_mouse_down(|_, _| {}) // This prevents the mouse down event from being propagated elsewhere
.on_drag(move |delta, _, cx| { .on_drag(move |old_position, new_position, cx| {
let delta = new_position.x() - old_position.x();
let prev_width = *actual_width.borrow(); let prev_width = *actual_width.borrow();
*custom_width.borrow_mut() = 0f32 *custom_width.borrow_mut() = 0f32
.max(match side { .max(match side {
Side::Left => prev_width + delta.x(), Side::Left => prev_width + delta,
Side::Right => prev_width - delta.x(), Side::Right => prev_width - delta,
}) })
.round(); .round();