diff --git a/crates/gpui/src/presenter.rs b/crates/gpui/src/presenter.rs index 9810277a87..d04a1df674 100644 --- a/crates/gpui/src/presenter.rs +++ b/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); }) } } diff --git a/crates/workspace/src/sidebar.rs b/crates/workspace/src/sidebar.rs index c31998aa93..a500f99492 100644 --- a/crates/workspace/src/sidebar.rs +++ b/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();