From 9e5e7e90f8c9fbdef02852cc6e918caebfae5176 Mon Sep 17 00:00:00 2001 From: Colin Powell Date: Thu, 19 Mar 2026 20:59:49 -0400 Subject: [PATCH] [list] Sort notifications by latest first --- src/subscription.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/subscription.rs b/src/subscription.rs index e2580c0..bc102c3 100644 --- a/src/subscription.rs +++ b/src/subscription.rs @@ -174,7 +174,18 @@ impl Subscription { fn handle_event(&self, ev: ListenerEvent) { match ev { ListenerEvent::Message(msg) => { - self.imp().messages.append(&glib::BoxedAnyObject::new(msg)); + let time = msg.time; + let messages = &self.imp().messages; + let pos = (0..messages.n_items()) + .find(|&i| { + messages + .item(i) + .and_then(|item| item.downcast::().ok()) + .map(|b| b.borrow::().time > time) + .unwrap_or(false) + }) + .unwrap_or(messages.n_items() as u32); + messages.insert(pos, &glib::BoxedAnyObject::new(msg)); self.update_unread_count(); } ListenerEvent::ConnectionStateChanged(connection_state) => {