aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index 937510c..3867237 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -982,8 +982,14 @@ namespace QuickMedia {
after_submit_handler();
if(tabs[selected_tab].page->clear_search_after_submit() && tabs[selected_tab].search_bar) {
- tabs[selected_tab].search_bar->clear();
- tabs[selected_tab].search_bar->onTextUpdateCallback("");
+ if(!tabs[selected_tab].search_bar->get_text().empty()) {
+ tabs[selected_tab].search_bar->clear();
+ tabs[selected_tab].search_bar->onTextUpdateCallback("");
+ } else {
+ int selected_item_index = tabs[selected_tab].body->get_selected_item();
+ tabs[selected_tab].body->select_first_item();
+ tabs[selected_tab].body->set_selected_item(selected_item_index, false);
+ }
}
if(tabs[selected_tab].page->is_single_page()) {
@@ -3484,9 +3490,9 @@ namespace QuickMedia {
bool fetched_enough_messages = false;
bool initial_prev_messages_fetch = true;
- auto fetch_more_previous_messages_if_needed = [this, &all_messages, &current_room, &fetched_enough_messages, &previous_messages_future]() {
+ auto fetch_more_previous_messages_if_needed = [this, &all_messages, &current_room, &fetched_enough_messages, &previous_messages_future, &initial_prev_messages_fetch]() {
if(!fetched_enough_messages && !previous_messages_future.ready()) {
- bool fetch_latest_messages = !matrix->is_initial_sync_finished();
+ bool fetch_latest_messages = !matrix->is_initial_sync_finished() && initial_prev_messages_fetch;
if(all_messages.size() < 10) {
previous_messages_future = [this, &current_room, fetch_latest_messages]() {
Messages messages;