diff options
Diffstat (limited to 'src/canvas/drawing_utils.rs')
-rw-r--r-- | src/canvas/drawing_utils.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/canvas/drawing_utils.rs b/src/canvas/drawing_utils.rs index 2d53d064..0670af33 100644 --- a/src/canvas/drawing_utils.rs +++ b/src/canvas/drawing_utils.rs @@ -76,7 +76,10 @@ pub fn get_start_position( ) -> u64 { match scroll_direction { app::ScrollDirection::DOWN => { - if currently_selected_position < *previously_scrolled_position + num_rows { + if currently_selected_position < num_rows { + // Can we see it outright? + 0 + } else if currently_selected_position < *previously_scrolled_position + num_rows { // If, using previous_scrolled_position, we can see the element // (so within that and + num_rows) just reuse the current previously scrolled position *previously_scrolled_position @@ -90,11 +93,12 @@ pub fn get_start_position( 0 } } + // TODO: [FIX] This is bugged. Scrolling up then resizing is a no go! app::ScrollDirection::UP => { - if currently_selected_position <= *previously_scrolled_position { + if currently_selected_position < *previously_scrolled_position { // If it's past the first element, then show from that element downwards *previously_scrolled_position = currently_selected_position; - currently_selected_position + *previously_scrolled_position } else { // Else, don't change what our start position is from whatever it is set to! *previously_scrolled_position |