From f6cda522ca943095b56ec6a9ccb933142a19adf5 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Tue, 9 Jan 2024 22:38:13 +0100 Subject: [PATCH] correct message order --- external/solanaceae_message3 | 2 +- src/chat_gui4.cpp | 24 +++++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/external/solanaceae_message3 b/external/solanaceae_message3 index 1a036c2..d0a53a6 160000 --- a/external/solanaceae_message3 +++ b/external/solanaceae_message3 @@ -1 +1 @@ -Subproject commit 1a036c2321e06d4c36f3e2148e67dfe6aa379296 +Subproject commit d0a53a6366e3f52e8c84d9fd63dd925ef93e10ce diff --git a/src/chat_gui4.cpp b/src/chat_gui4.cpp index 22c78a0..2f43bec 100644 --- a/src/chat_gui4.cpp +++ b/src/chat_gui4.cpp @@ -266,10 +266,24 @@ void ChatGui4::render(float time_delta) { msg_reg.remove(to_remove.cbegin(), to_remove.cend()); } - auto tmp_view = msg_reg.view(); - tmp_view.use(); - tmp_view.each([&](const Message3 e, Message::Components::ContactFrom& c_from, Message::Components::ContactTo& c_to, Message::Components::Timestamp ts - ) { + //auto tmp_view = msg_reg.view(); + //tmp_view.use(); + //tmp_view.each([&](const Message3 e, Message::Components::ContactFrom& c_from, Message::Components::ContactTo& c_to, Message::Components::Timestamp ts + //) { + auto tmp_view = msg_reg.view(); + for (auto view_it = tmp_view.rbegin(), view_last = tmp_view.rend(); view_it != view_last; view_it++) { + const Message3 e = *view_it; + + // manually filter ("reverse" iteration <.<) + if (!msg_reg.all_of(e)) { + continue; + } + + Message::Components::ContactFrom& c_from = msg_reg.get(e); + Message::Components::ContactTo& c_to = msg_reg.get(e); + Message::Components::Timestamp ts = tmp_view.get(e); + + // TODO: why? ImGui::TableNextRow(0, TEXT_BASE_HEIGHT); @@ -356,7 +370,7 @@ void ChatGui4::render(float time_delta) { } ImGui::PopID(); // ent - }); + } // fake empty placeholders //ImGui::TableNextRow(0, TEXT_BASE_HEIGHT);