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

Mikayla Maki created

Change summary

crates/gpui/src/presenter.rs    | 11 ++++-------
crates/workspace/src/sidebar.rs |  7 ++++---
2 files changed, 8 insertions(+), 10 deletions(-)

Detailed changes

crates/gpui/src/presenter.rs 🔗

@@ -306,11 +306,8 @@ impl Presenter {
                         .as_ref()
                         .zip(self.prev_drag_position.as_mut())
                     {
-                        dragged_region = Some((
-                            clicked_region.clone(),
-                            position - *prev_drag_position,
-                            position,
-                        ));
+                        dragged_region =
+                            Some((clicked_region.clone(), *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;
                 if let Some(drag_callback) = dragged_region.drag {
                     event_cx.with_current_view(dragged_region.view_id, |event_cx| {
-                        drag_callback(delta, position, event_cx);
+                        drag_callback(prev_position, position, event_cx);
                     })
                 }
             }

crates/workspace/src/sidebar.rs 🔗

@@ -188,12 +188,13 @@ impl Sidebar {
         })
         .with_cursor_style(CursorStyle::ResizeLeftRight)
         .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();
             *custom_width.borrow_mut() = 0f32
                 .max(match side {
-                    Side::Left => prev_width + delta.x(),
-                    Side::Right => prev_width - delta.x(),
+                    Side::Left => prev_width + delta,
+                    Side::Right => prev_width - delta,
                 })
                 .round();