When a conversation with lots of messages (imagine an active MUC that has been open for a few days) is restored, we currently add messages from oldest to newest. This can take a lot of time, and even though it's async, is slow and inconvenient since the latest messages appear last. The convbrowser should display the first few (maybe 50? 100?) messages first, and then keep adding more messages (again, in groups of 50?) as the user scrolls up.
(In reply to Nihanth Subramanya [:nhnt11] from comment #0) > The convbrowser should display the first few (maybe 50? 100?) messages Does this have to be a constant? I would like if we could display about twice what can fit in the display area. And that number would change significantly based on the window size and the message theme used (eg. simple vs Bubbles). Be careful to not break section scroll :-).
Created attachment 8474116 [details] [diff] [review] WIP This WIP includes code for prepending a group of messages, and uses this to prepend the last 50 messages when a conversation is restored from hold, and 50 more every time the user scrolls to the top. I've been working on getting the unread ruler working with prepended groups, and a few other issues, hopefully I'll have that up soon.
Created attachment 8475901 [details] [diff] [review] WIP 2 This makes the unread ruler work with prepending, and also generalizes (albeit sloppily) the code in removeUnreadRuler that merges bubble groups. This is used to merge two prepended groups when required.