diff options
Diffstat (limited to 'src/Body.cpp')
-rw-r--r-- | src/Body.cpp | 14 |
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; |