@@ -739,6 +739,35 @@ impl EditorElement {
}
}
+ if !is_singleton {
+ let display_row = (ScrollPixelOffset::from(
+ (event.position - gutter_hitbox.bounds.origin).y / position_map.line_height,
+ ) + position_map.scroll_position.y) as u32;
+ let multi_buffer_row = position_map
+ .snapshot
+ .display_point_to_point(DisplayPoint::new(DisplayRow(display_row), 0), Bias::Right)
+ .row;
+ if line_numbers
+ .get(&MultiBufferRow(multi_buffer_row))
+ .and_then(|line_number| line_number.hitbox.as_ref())
+ .is_some_and(|hitbox| hitbox.contains(&event.position))
+ {
+ let line_offset_from_top = display_row - position_map.scroll_position.y as u32;
+
+ editor.open_excerpts_common(
+ Some(JumpData::MultiBufferRow {
+ row: MultiBufferRow(multi_buffer_row),
+ line_offset_from_top,
+ }),
+ modifiers.alt,
+ window,
+ cx,
+ );
+ cx.stop_propagation();
+ return;
+ }
+ }
+
let position = point_for_position.previous_valid;
if let Some(mode) = Editor::columnar_selection_mode(&modifiers, cx) {
editor.select(
@@ -776,34 +805,6 @@ impl EditorElement {
);
}
cx.stop_propagation();
-
- if !is_singleton {
- let display_row = (ScrollPixelOffset::from(
- (event.position - gutter_hitbox.bounds.origin).y / position_map.line_height,
- ) + position_map.scroll_position.y) as u32;
- let multi_buffer_row = position_map
- .snapshot
- .display_point_to_point(DisplayPoint::new(DisplayRow(display_row), 0), Bias::Right)
- .row;
- if line_numbers
- .get(&MultiBufferRow(multi_buffer_row))
- .and_then(|line_number| line_number.hitbox.as_ref())
- .is_some_and(|hitbox| hitbox.contains(&event.position))
- {
- let line_offset_from_top = display_row - position_map.scroll_position.y as u32;
-
- editor.open_excerpts_common(
- Some(JumpData::MultiBufferRow {
- row: MultiBufferRow(multi_buffer_row),
- line_offset_from_top,
- }),
- modifiers.alt,
- window,
- cx,
- );
- cx.stop_propagation();
- }
- }
}
fn mouse_right_down(