diff --git a/helix-view/src/view.rs b/helix-view/src/view.rs index b427a8d43..c6ae0c56e 100644 --- a/helix-view/src/view.rs +++ b/helix-view/src/view.rs @@ -260,7 +260,7 @@ pub fn text_pos_at_screen_coords( // If pos is in the middle of a wider grapheme (tab for example) // return the starting offset. - if col + width >= target { + if col + width > target { break; } @@ -356,7 +356,7 @@ fn test_text_pos_at_screen_coords() { assert_eq!( view.text_pos_at_screen_coords(&text, 41, 40 + OFFSET + 1, 4), - Some(5) + Some(4) ); assert_eq!( @@ -384,9 +384,13 @@ fn test_text_pos_at_screen_coords_cjk() { Some(0) ); + assert_eq!( + view.text_pos_at_screen_coords(&text, 40, 40 + OFFSET + 4, 4), + Some(4) + ); assert_eq!( view.text_pos_at_screen_coords(&text, 40, 40 + OFFSET + 5, 4), - Some(5) + Some(4) ); assert_eq!( @@ -396,7 +400,7 @@ fn test_text_pos_at_screen_coords_cjk() { assert_eq!( view.text_pos_at_screen_coords(&text, 40, 40 + OFFSET + 7, 4), - Some(6) + Some(5) ); assert_eq!(