aboutsummaryrefslogtreecommitdiff
path: root/src/Body.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Body.cpp')
-rw-r--r--src/Body.cpp8
1 files changed, 3 insertions, 5 deletions
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