aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-12-05 06:09:05 +0100
committerdec05eba <dec05eba@protonmail.com>2020-12-05 06:09:05 +0100
commita8e35756f9e2b2a94d76c88e699692aef05555a9 (patch)
treedc9c41210aa39a63a6dd77238c89526cb6754f86 /src/QuickMedia.cpp
parent3a501ffbe0cd705eed09e697e22023754558aa89 (diff)
Matrix: scroll to bottom when receiving previous messages and no visible messages, fix thumbnail size json crash
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index d3a745f..89ced4a 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -3869,7 +3869,7 @@ namespace QuickMedia {
int num_items = tabs[MESSAGES_TAB_INDEX].body->items.size();
bool scroll_to_end = num_items == 0;
- if(tabs[MESSAGES_TAB_INDEX].body->is_selected_item_last_visible_item() && selected_tab == MESSAGES_TAB_INDEX && chat_state != ChatState::TYPING_MESSAGE)
+ if(selected_tab == MESSAGES_TAB_INDEX && (tabs[MESSAGES_TAB_INDEX].body->is_selected_item_last_visible_item() || !tabs[MESSAGES_TAB_INDEX].body->get_selected()) && chat_state != ChatState::TYPING_MESSAGE)
scroll_to_end = true;
if(current_room->initial_prev_messages_fetch) {
@@ -4482,14 +4482,7 @@ namespace QuickMedia {
fprintf(stderr, "Finished fetching older messages, num new messages: %zu\n", new_messages.size());
size_t num_new_messages = new_messages.size();
if(num_new_messages > 0) {
- BodyItem *selected_item = tabs[MESSAGES_TAB_INDEX].body->get_selected();
- BodyItems new_body_items = messages_to_body_items(current_room, new_messages, current_room->get_user_display_name(me), me->user_id);
- tabs[MESSAGES_TAB_INDEX].body->insert_items_by_timestamps(std::move(new_body_items));
- if(selected_item) {
- int selected_item_index = tabs[MESSAGES_TAB_INDEX].body->get_index_by_body_item(selected_item);
- if(selected_item_index != -1)
- tabs[MESSAGES_TAB_INDEX].body->set_selected_item(selected_item_index);
- }
+ add_new_messages_to_current_room(new_messages);
modify_related_messages_in_current_room(new_messages);
process_reactions(new_messages);
// TODO: Do not loop all items, only loop the new items