[fractal] event: Update matrix event when pure event changes



commit 47b6163c83b65a025fc41d1e27fba0c8b5e2ea9d
Author: Kévin Commaille <zecakeh tedomum fr>
Date:   Sun Aug 21 10:51:02 2022 +0200

    event: Update matrix event when pure event changes

 src/session/content/room_history/item_row.rs | 1 +
 src/session/room/event/mod.rs                | 1 -
 src/session/room/event/supported_event.rs    | 8 ++++++++
 3 files changed, 9 insertions(+), 1 deletion(-)
---
diff --git a/src/session/content/room_history/item_row.rs b/src/session/content/room_history/item_row.rs
index 67b1a20ba..1511cf5cb 100644
--- a/src/session/content/room_history/item_row.rs
+++ b/src/session/content/room_history/item_row.rs
@@ -5,6 +5,7 @@ use matrix_sdk::ruma::events::AnySyncTimelineEvent;
 
 use crate::{
     components::{ContextMenuBin, ContextMenuBinExt, ContextMenuBinImpl, ReactionChooser},
+    prelude::*,
     session::{
         content::room_history::{message_row::MessageRow, DividerRow, RoomHistory, StateRow},
         room::{
diff --git a/src/session/room/event/mod.rs b/src/session/room/event/mod.rs
index 4d6c305c2..507f3bb56 100644
--- a/src/session/room/event/mod.rs
+++ b/src/session/room/event/mod.rs
@@ -265,7 +265,6 @@ impl<O: IsA<Event>> EventExt for O {
         let priv_ = self.upcast_ref().imp();
         priv_.pure_event.replace(Some(pure_event));
 
-        self.notify("pure-event");
         self.notify("source");
     }
 
diff --git a/src/session/room/event/supported_event.rs b/src/session/room/event/supported_event.rs
index ec329cec8..b33703870 100644
--- a/src/session/room/event/supported_event.rs
+++ b/src/session/room/event/supported_event.rs
@@ -107,6 +107,14 @@ mod imp {
                 _ => unimplemented!(),
             }
         }
+
+        fn constructed(&self, obj: &Self::Type) {
+            obj.connect_notify_local(Some("source"), |obj, _| {
+                if let Ok(matrix_event) = obj.pure_event().event.deserialize() {
+                    obj.set_matrix_event(matrix_event);
+                }
+            });
+        }
     }
 
     impl TimelineItemImpl for SupportedEvent {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]