From dadc8f8b5b48d52b950886af9d670a8b23d0f895 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 12 Apr 2021 12:25:03 +0200 Subject: Fix weird body move behavior when last item is selected, download manga images straight to an image --- src/Body.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/Body.cpp') diff --git a/src/Body.cpp b/src/Body.cpp index 32d70fc..4c715ed 100644 --- a/src/Body.cpp +++ b/src/Body.cpp @@ -561,7 +561,7 @@ namespace QuickMedia { } else if(selected_item_diff < 0) { int num_items_scrolled = 0; int i = prev_selected_item - 1; - BodyItem *prev_body_item = get_previous_visible_item(i); + BodyItem *prev_body_item; while(num_items_scrolled < selected_int_diff_abs && i >= 0) { if(items[i]->visible) { prev_body_item = get_previous_visible_item(i); @@ -603,14 +603,13 @@ namespace QuickMedia { else if(offset_to_bottom > 0.0f) page_scroll += offset_to_bottom; } else { - if(attach_side == AttachSide::TOP) + if((attach_side == AttachSide::TOP && first_item_fully_visible) || (first_item_fully_visible && !last_item_fully_visible)) page_scroll -= offset_to_top; - else if(attach_side == AttachSide::BOTTOM) + else if((attach_side == AttachSide::BOTTOM && last_item_fully_visible) || (last_item_fully_visible && !first_item_fully_visible)) page_scroll += offset_to_bottom; } if(page_scroll > size.y - selected_item_height && selected_item_fits_on_screen) { - //fprintf(stderr, "top: %f\n", page_scroll - (size.y - selected_item_height)); page_scroll = size.y - selected_item_height; if(merge_with_previous) page_scroll += spacing_y*2.0f; @@ -620,7 +619,6 @@ namespace QuickMedia { if(!merge_with_previous && merge_with_next) page_scroll += spacing_y; } else if(page_scroll < (merge_with_previous ? spacing_y : 0.0f) && selected_line_top_visible && selected_item_fits_on_screen) { - //fprintf(stderr, "bottom!\n"); if(merge_with_previous) page_scroll = spacing_y; else -- cgit v1.2.3