From 522285b55556b954c786d254388c4b0e45f05a14 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Wed, 13 Oct 2021 04:21:23 +0200 Subject: Fix lbry launch icon not loading, incorrect tabs body items cleared on tab switch --- include/Tabs.hpp | 2 +- src/QuickMedia.cpp | 12 ++++++------ src/Tabs.cpp | 8 +++++--- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/include/Tabs.hpp b/include/Tabs.hpp index b7d8de6..51a7e9d 100644 --- a/include/Tabs.hpp +++ b/include/Tabs.hpp @@ -33,7 +33,7 @@ namespace QuickMedia { void set_selected(int index); int get_selected() const; - std::function on_change_tab = nullptr; + std::function on_change_tab = nullptr; private: void move_selected_tab(int new_tab); float tab_index_to_x_offset(int index); diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 65d6159..709bac5 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -1048,7 +1048,7 @@ namespace QuickMedia { create_launcher_body_item("4chan", "4chan", resources_root + "icons/4chan_launcher.png"), create_launcher_body_item("AniList", "anilist", resources_root + "images/anilist_logo.png"), create_launcher_body_item("Hot Examples", "hotexamples", ""), - create_launcher_body_item("Lbry", "lbry", "icons/lbry_launcher.png"), + create_launcher_body_item("Lbry", "lbry", resources_root + "icons/lbry_launcher.png"), create_launcher_body_item("Manga (all)", "manga", ""), create_launcher_body_item("Mangadex", "mangadex", resources_root + "icons/mangadex_launcher.png"), create_launcher_body_item("Mangakatana", "mangakatana", resources_root + "icons/mangakatana_launcher.png"), @@ -1769,8 +1769,8 @@ namespace QuickMedia { } ui_tabs.set_selected(start_tab_index); - ui_tabs.on_change_tab = [&tabs, &redraw](int selected_tab) { - tabs[selected_tab].body->clear_cache(); + ui_tabs.on_change_tab = [&tabs, &redraw](int prev_tab, int) { + tabs[prev_tab].body->clear_cache(); redraw = true; }; @@ -4889,9 +4889,9 @@ namespace QuickMedia { }; std::thread typing_state_thread(typing_state_handler); - ui_tabs.on_change_tab = [matrix_chat_page, &redraw, &typing, &typing_state_queue, &read_marker_timer, &tabs, MESSAGES_TAB_INDEX](int selected_tab) { - tabs[selected_tab].body->clear_cache(); - if(selected_tab == MESSAGES_TAB_INDEX) + ui_tabs.on_change_tab = [matrix_chat_page, &redraw, &typing, &typing_state_queue, &read_marker_timer, &tabs, MESSAGES_TAB_INDEX](int prev_tab, int new_tab) { + tabs[prev_tab].body->clear_cache(); + if(new_tab == MESSAGES_TAB_INDEX) matrix_chat_page->messages_tab_visible = true; else matrix_chat_page->messages_tab_visible = false; diff --git a/src/Tabs.cpp b/src/Tabs.cpp index 866589b..059a8d8 100644 --- a/src/Tabs.cpp +++ b/src/Tabs.cpp @@ -37,7 +37,8 @@ namespace QuickMedia { } void Tabs::move_selected_tab(int new_tab) { - const int tab_diff = new_tab - selected_tab; + const int prev_tab = selected_tab; + const int tab_diff = new_tab - prev_tab; if(tab_diff > 0) { while(selected_tab < new_tab) { @@ -58,7 +59,7 @@ namespace QuickMedia { } if(on_change_tab) - on_change_tab(selected_tab); + on_change_tab(prev_tab, selected_tab); } void Tabs::on_event(sf::Event &event) { @@ -221,7 +222,8 @@ namespace QuickMedia { } void Tabs::set_selected(int index) { - move_selected_tab(index); + if(index >= 0 && index < (int)tabs.size()) + move_selected_tab(index); } int Tabs::get_selected() const { -- cgit v1.2.3