summaryrefslogtreecommitdiffstats
path: root/src/canvas/drawing_utils.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/canvas/drawing_utils.rs')
-rw-r--r--src/canvas/drawing_utils.rs10
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