aboutsummaryrefslogtreecommitdiff
path: root/src/Body.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Body.cpp')
-rw-r--r--src/Body.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/Body.cpp b/src/Body.cpp
index 4aa194b..812840d 100644
--- a/src/Body.cpp
+++ b/src/Body.cpp
@@ -191,15 +191,7 @@ namespace QuickMedia {
}
void Body::reset_selected() {
- for(size_t i = 0; i < items.size(); ++i) {
- if(items[i]->visible) {
- selected_item = i;
- return;
- }
- }
- selected_item = 0;
- prev_selected_item = selected_item;
- page_scroll = 0.0f;
+ select_first_item();
}
void Body::clear_items() {
@@ -350,6 +342,10 @@ namespace QuickMedia {
}
}
+ if(prev_selected_item < 0 || prev_selected_item >= (int)items.size()) {
+ prev_selected_item = selected_item;
+ }
+
// TODO: Optimize this, especially when scrolling to top/bottom.
// TODO: Test when wrapping is enabled
int selected_item_diff = selected_item - prev_selected_item;