diff options
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r-- | src/QuickMedia.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 7835af2..f020277 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -3706,7 +3706,7 @@ namespace QuickMedia { message->type = MessageType::TEXT; message->timestamp = time(NULL) * 1000; - const sf::Color provisional_message_color(255, 255, 255, 180); + const sf::Color provisional_message_color(255, 255, 255, 150); int num_items = tabs[MESSAGES_TAB_INDEX].body->items.size(); bool scroll_to_end = num_items == 0; @@ -3990,6 +3990,24 @@ namespace QuickMedia { }; }; + tabs[MESSAGES_TAB_INDEX].body->body_item_merge_handler = [](BodyItem *prev_item, BodyItem *this_item) { + Message *message = static_cast<Message*>(this_item->userdata); + if(!message || !prev_item || !prev_item->userdata) + return false; + + if(is_visual_media_message_type(message->type) && !this_item->thumbnail_url.empty()) + return false; + + Message *prev_message = static_cast<Message*>(prev_item->userdata); + if(is_visual_media_message_type(prev_message->type) && !prev_item->thumbnail_url.empty()) + return false; + + if(message->user == prev_message->user) + return true; + + return false; + }; + const float tab_spacer_height = 0.0f; sf::Vector2f body_pos; sf::Vector2f body_size; @@ -4884,7 +4902,8 @@ namespace QuickMedia { glScissor(0.0f, 0.0f, this->body_size.x, window_size.y); window.draw(room_list_background); window.draw(room_label); - room_tabs[room_selected_tab].body->draw(window, sf::Vector2f(0.0f, tab_y), sf::Vector2f(this->body_size.x, window_size.y - tab_y), Json::Value::nullSingleton()); + const float padding_x = std::floor(10.0f * get_ui_scale()); + room_tabs[room_selected_tab].body->draw(window, sf::Vector2f(padding_x, tab_y), sf::Vector2f(this->body_size.x - padding_x * 2.0f, window_size.y - tab_y), Json::Value::nullSingleton()); glDisable(GL_SCISSOR_TEST); } |