From 423fc2243930645036ff053e384a3ce64e70255e Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 27 Oct 2023 13:17:56 -0600 Subject: [PATCH] ViEditor: fix cursor and select positions --- src/edit/vi.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/edit/vi.rs b/src/edit/vi.rs index cd8fcc3..483a88c 100644 --- a/src/edit/vi.rs +++ b/src/edit/vi.rs @@ -419,6 +419,7 @@ impl<'a> Edit for ViEditor<'a> { for run in self.buffer().layout_runs() { let line_i = run.line_i; let line_y = run.line_y; + let line_top = run.line_top; let cursor_glyph_opt = |cursor: &Cursor| -> Option<(usize, f32, f32)> { //TODO: better calculation of width @@ -497,7 +498,7 @@ impl<'a> Edit for ViEditor<'a> { } else if let Some((min, max)) = range_opt.take() { f( min, - (line_y - font_size) as i32, + line_top as i32, cmp::max(0, max - min) as u32, line_height as u32, Color::rgba(color.r(), color.g(), color.b(), 0x33), @@ -523,7 +524,7 @@ impl<'a> Edit for ViEditor<'a> { } f( min, - (line_y - font_size) as i32, + line_top as i32, cmp::max(0, max - min) as u32, line_height as u32, Color::rgba(color.r(), color.g(), color.b(), 0x33), @@ -583,7 +584,7 @@ impl<'a> Edit for ViEditor<'a> { let right_x = cmp::max(start_x, end_x); f( left_x, - (line_y - font_size) as i32, + line_top as i32, (right_x - left_x) as u32, line_height as u32, Color::rgba(color.r(), color.g(), color.b(), 0x33), @@ -591,7 +592,7 @@ impl<'a> Edit for ViEditor<'a> { } else { f( start_x, - (line_y - font_size) as i32, + line_top as i32, 1, line_height as u32, color,