[fractal/sync-matrix-sdk] Make join_to_room shareable, mutable and sync
- From: Alejandro Domínguez <aledomu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal/sync-matrix-sdk] Make join_to_room shareable, mutable and sync
- Date: Wed, 2 Dec 2020 20:21:00 +0000 (UTC)
commit 32c8282c26887c7bb67ad46ff8436da7bc7820a4
Author: Alejandro Domínguez <adomu net-c com>
Date: Wed Dec 2 18:29:04 2020 +0100
Make join_to_room shareable, mutable and sync
fractal-gtk/src/appop/mod.rs | 4 ++--
fractal-gtk/src/appop/room.rs | 2 +-
fractal-gtk/src/appop/sync.rs | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/fractal-gtk/src/appop/mod.rs b/fractal-gtk/src/appop/mod.rs
index 59b77d5f..e99c4fdc 100644
--- a/fractal-gtk/src/appop/mod.rs
+++ b/fractal-gtk/src/appop/mod.rs
@@ -92,7 +92,7 @@ pub struct AppOp {
pub login_data: Option<LoginData>,
pub active_room: Option<RoomId>,
- pub join_to_room: Option<RoomId>,
+ pub join_to_room: Arc<Mutex<Option<RoomId>>>,
pub rooms: RoomList,
pub room_settings: Option<widgets::RoomSettings>,
pub history: Option<widgets::RoomHistory>,
@@ -136,7 +136,7 @@ impl AppOp {
AppOp {
ui,
active_room: None,
- join_to_room: None,
+ join_to_room: Arc::new(Mutex::new(None)),
rooms: HashMap::new(),
room_settings: None,
history: None,
diff --git a/fractal-gtk/src/appop/room.rs b/fractal-gtk/src/appop/room.rs
index e21f561d..cc681542 100644
--- a/fractal-gtk/src/appop/room.rs
+++ b/fractal-gtk/src/appop/room.rs
@@ -174,7 +174,7 @@ impl AppOp {
}
pub fn set_join_to_room(&mut self, jtr: Option<RoomId>) {
- self.join_to_room = jtr;
+ *self.join_to_room.lock().unwrap() = jtr;
}
pub fn set_active_room_by_id(&mut self, id: RoomId) {
diff --git a/fractal-gtk/src/appop/sync.rs b/fractal-gtk/src/appop/sync.rs
index 9228a9bb..fb29e980 100644
--- a/fractal-gtk/src/appop/sync.rs
+++ b/fractal-gtk/src/appop/sync.rs
@@ -94,11 +94,11 @@ impl AppOp {
}
} else {
let rooms = sync_ret.rooms;
- let jtr = join_to_room.and_then(|jtr| {
+ let jtr = join_to_room.lock().unwrap().as_ref().and_then(|jtr| {
rooms
.iter()
.map(|room| &room.id)
- .find(|rid| **rid == jtr)
+ .find(|rid| *rid == jtr)
.cloned()
});
APPOP!(set_rooms, (rooms, clear_room_list));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]