From da95623137f85b07abf9f56035c23819af1e7fe9 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 7 Jun 2021 16:34:55 +0200 Subject: Revert back to instant move on low fps as before (idle fps), fix top offset for bottom attach --- src/Body.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/Body.cpp') diff --git a/src/Body.cpp b/src/Body.cpp index e04bc56..3df816c 100644 --- a/src/Body.cpp +++ b/src/Body.cpp @@ -564,8 +564,11 @@ namespace QuickMedia { size.x = std::max(0.0f, size.x - body_spacing[body_theme].body_padding_horizontal * 2.0f); float frame_time = frame_timer.restart().asSeconds(); - if(frame_time > 0.01666f) - frame_time = 0.01666f; + if(frame_time > 1.0f) + frame_time = 1.0f; + // TODO: Remove the need for this. This is needed because fps is changed to 20 or 2 when idle. That idle handler should be removed + //if(frame_time > 0.01666f) + // frame_time = 0.01666f; if(selected_item >= (int)items.size()) selected_item = (int)items.size() - 1; @@ -714,8 +717,8 @@ namespace QuickMedia { const float item_background_move_speed = instant_move ? 1000.0f : speed; sf::Vector2f item_background_new_pos = item_background_prev_pos + (item_background_pos_diff * std::min(1.0f, frame_time * item_background_move_speed)); if(selected_item_fits_in_body) { - item_background_new_pos.y = std::min(item_background_new_pos.y, size.y - item_background_new_size.y - body_spacing[body_theme].spacing_y); - item_background_new_pos.y = std::max(item_background_new_pos.y, body_spacing[body_theme].body_padding_vertical); + item_background_new_pos.y = std::min(item_background_new_pos.y, size.y - item_background_new_size.y); + item_background_new_pos.y = std::max(item_background_new_pos.y, 0.0f); } item_background_prev_pos = item_background_new_pos; @@ -754,7 +757,7 @@ namespace QuickMedia { if(is_touch_enabled()) return; - const float item_target_top_diff = item_background_target_pos.y - selected_scrolled - body_spacing[body_theme].body_padding_vertical; + const float item_target_top_diff = item_background_target_pos.y - selected_scrolled - (attach_side == AttachSide::TOP ? body_spacing[body_theme].body_padding_vertical : 0.0f); const float item_target_bottom_diff = (item_background_target_pos.y - selected_scrolled + item_background_target_size.y + body_spacing[body_theme].spacing_y) - size.y; if(item_target_top_diff < 0.0f || !selected_item_fits_in_body) { //extra_scroll_target -= item_target_top_diff; -- cgit v1.2.3