From 423ecedc1a0a36b91e59fffcf6a4a70b18d3fd7a Mon Sep 17 00:00:00 2001 From: exoticus <56480961+exoticus@users.noreply.github.com> Date: Mon, 20 Apr 2020 19:13:09 +0200 Subject: [PATCH] address pr concerns, values are no longer hard coded --- src/renderer/cursor_renderer/mod.rs | 30 +++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/renderer/cursor_renderer/mod.rs b/src/renderer/cursor_renderer/mod.rs index cfd79ce..d49fd75 100644 --- a/src/renderer/cursor_renderer/mod.rs +++ b/src/renderer/cursor_renderer/mod.rs @@ -9,6 +9,7 @@ use crate::redraw_scheduler::REDRAW_SCHEDULER; use crate::renderer::CachingShaper; use crate::settings::*; +use crate::bridge::EditorMode; use animation_utils::*; use blink::*; @@ -108,18 +109,9 @@ impl Corner { font_dimensions: Point, destination: Point, dt: f32, - mode: u64, + immediate_movement: bool, ) -> bool { - // Update destination if needed - let mut immediate_movement = false; - if destination != self.previous_destination { - // 2 for insert mode as it's the only mode where - // the cursor might appear to lag behind - if !settings.animate_in_insert_mode && mode == 2 { - immediate_movement = true; - } - self.t = 0.0; self.start_position = self.current_position; self.previous_destination = destination; @@ -284,7 +276,7 @@ impl CursorRenderer { }; let (grid_x, grid_y) = self.previous_position; - let (character, font_dimensions, mode): (String, Point, u64) = { + let (character, font_dimensions, in_insert_mode): (String, Point, bool) = { let editor = EDITOR.lock(); let character = match editor.grid.get_cell(grid_x, grid_y) { Some(Some((character, _))) => character.clone(), @@ -301,7 +293,12 @@ impl CursorRenderer { _ => font_width, }; - (character, (font_width, font_height).into(), editor.mode) + let in_insert_mode = match editor.current_mode { + EditorMode::Insert => true, + _ => false, + }; + + (character, (font_width, font_height).into(), in_insert_mode) }; let destination: Point = (grid_x as f32 * font_width, grid_y as f32 * font_height).into(); @@ -324,8 +321,13 @@ impl CursorRenderer { if !center_destination.is_zero() { for corner in self.corners.iter_mut() { - let corner_animating = - corner.update(&settings, font_dimensions, center_destination, dt, mode); + let corner_animating = corner.update( + &settings, + font_dimensions, + center_destination, + dt, + !settings.animate_in_insert_mode && in_insert_mode, + ); animating |= corner_animating; }