on master help sign in
do not ignore mouse scrolling when on top of virtual text
9fac574Pascal Kuthe
helix-term/src/ui/editor.rs+11−6
@@ -1038,10 +1038,15 @@ impl EditorView {
1038 ..
1038 ..
1039 } = *event;
1039 } = *event;
1040
1040
1041− let pos_and_view = |editor: &Editor, row, column| {
1041+ let pos_and_view = |editor: &Editor, row, column, ignore_virtual_text| {
1042 editor.tree.views().find_map(|(view, _focus)| {
1042 editor.tree.views().find_map(|(view, _focus)| {
1043− view.pos_at_screen_coords(&editor.documents[&view.doc], row, column, true)
1043+ view.pos_at_screen_coords(
1044+ &editor.documents[&view.doc],
1045+ row,
1046+ column,
1047+ ignore_virtual_text,
1048+ )
1044− .map(|pos| (pos, view.id))
1049+ .map(|pos| (pos, view.id))
1045 })
1050 })
1046 };
1051 };
1047
1052
@@ -1056,7 +1061,7 @@ impl EditorView {
1056 MouseEventKind::Down(MouseButton::Left) => {
1061 MouseEventKind::Down(MouseButton::Left) => {
1057 let editor = &mut cxt.editor;
1062 let editor = &mut cxt.editor;
1058
1063
1059− if let Some((pos, view_id)) = pos_and_view(editor, row, column) {
1064+ if let Some((pos, view_id)) = pos_and_view(editor, row, column, true) {
1060 let doc = doc_mut!(editor, &view!(editor, view_id).doc);
1065 let doc = doc_mut!(editor, &view!(editor, view_id).doc);
1061
1066
1062 if modifiers == KeyModifiers::ALT {
1067 if modifiers == KeyModifiers::ALT {
@@ -1120,7 +1125,7 @@ impl EditorView {
1120 _ => unreachable!(),
1125 _ => unreachable!(),
1121 };
1126 };
1122
1127
1123− match pos_and_view(cxt.editor, row, column) {
1128+ match pos_and_view(cxt.editor, row, column, false) {
1124 Some((_, view_id)) => cxt.editor.tree.focus = view_id,
1129 Some((_, view_id)) => cxt.editor.tree.focus = view_id,
1125 None => return EventResult::Ignored(None),
1130 None => return EventResult::Ignored(None),
1126 }
1131 }
@@ -1191,7 +1196,7 @@ impl EditorView {
1191 return EventResult::Consumed(None);
1196 return EventResult::Consumed(None);
1192 }
1197 }
1193
1198
1194− if let Some((pos, view_id)) = pos_and_view(editor, row, column) {
1199+ if let Some((pos, view_id)) = pos_and_view(editor, row, column, true) {
1195 let doc = doc_mut!(editor, &view!(editor, view_id).doc);
1200 let doc = doc_mut!(editor, &view!(editor, view_id).doc);
1196 doc.set_selection(view_id, Selection::point(pos));
1201 doc.set_selection(view_id, Selection::point(pos));
1197 cxt.editor.focus(view_id);
1202 cxt.editor.focus(view_id);