diff --git a/crates/editor/src/element.rs b/crates/editor/src/element.rs index ee46544df3..a2fe64f7a4 100644 --- a/crates/editor/src/element.rs +++ b/crates/editor/src/element.rs @@ -110,13 +110,17 @@ impl EditorElement { self.update_view(cx, |view, cx| view.snapshot(cx)) } - #[allow(clippy::too_many_arguments)] fn mouse_down( &self, - position: Vector2F, - alt: bool, - shift: bool, - mut click_count: usize, + MouseButtonEvent { + position, + ctrl, + alt, + shift, + cmd, + mut click_count, + .. + }: MouseButtonEvent, layout: &mut LayoutState, paint: &mut PaintState, cx: &mut EventContext, @@ -135,7 +139,7 @@ impl EditorElement { position, goal_column: target_position.column(), })); - } else if shift { + } else if shift && !ctrl && !alt && !cmd { cx.dispatch_action(Select(SelectPhase::Extend { position, click_count, @@ -1576,14 +1580,12 @@ impl Element for EditorElement { } match event { - &Event::MouseDown(MouseButtonEvent { - button: MouseButton::Left, - position, - alt, - shift, - click_count, - .. - }) => self.mouse_down(position, alt, shift, click_count, layout, paint, cx), + &Event::MouseDown( + event @ MouseButtonEvent { + button: MouseButton::Left, + .. + }, + ) => self.mouse_down(event, layout, paint, cx), &Event::MouseDown(MouseButtonEvent { button: MouseButton::Right,