diff --git a/data/resources/resources.gresource.xml b/data/resources/resources.gresource.xml
index 02a2bf08..4b3bba14 100644
--- a/data/resources/resources.gresource.xml
+++ b/data/resources/resources.gresource.xml
@@ -138,7 +138,7 @@
ui/room-title.ui
ui/session-item-row.ui
ui/session-verification.ui
- ui/session.ui
+ ui/session-view.ui
ui/shortcuts.ui
ui/sidebar-account-switcher.ui
ui/sidebar-category-row.ui
diff --git a/data/resources/ui/greeter.ui b/data/resources/ui/greeter.ui
index 0fa9eda6..4254c923 100644
--- a/data/resources/ui/greeter.ui
+++ b/data/resources/ui/greeter.ui
@@ -13,7 +13,7 @@
diff --git a/data/resources/ui/session.ui b/data/resources/ui/session-view.ui
similarity index 72%
rename from data/resources/ui/session.ui
rename to data/resources/ui/session-view.ui
index 5e510e78..ade5acca 100644
--- a/data/resources/ui/session.ui
+++ b/data/resources/ui/session-view.ui
@@ -1,6 +1,6 @@
-
+
diff --git a/data/resources/ui/window.ui b/data/resources/ui/window.ui
index 3443e172..37659bae 100644
--- a/data/resources/ui/window.ui
+++ b/data/resources/ui/window.ui
@@ -46,8 +46,12 @@
-
- crossfade
+
+
+
+ Window
+
+
diff --git a/src/account_switcher/session_item.rs b/src/account_switcher/session_item.rs
index 1732fd9e..4e89d64a 100644
--- a/src/account_switcher/session_item.rs
+++ b/src/account_switcher/session_item.rs
@@ -123,9 +123,11 @@ impl SessionItemRow {
self.activate_action("account-switcher.close", None)
.unwrap();
- session
- .activate_action("session.open-account-settings", None)
- .unwrap();
+ self.activate_action(
+ "win.open-account-settings",
+ Some(&session.session_id().to_variant()),
+ )
+ .unwrap();
}
/// The session this item represents.
diff --git a/src/application.rs b/src/application.rs
index b7b3fc90..2ce0b98e 100644
--- a/src/application.rs
+++ b/src/application.rs
@@ -142,20 +142,20 @@ impl Application {
.build(),
]);
- let show_sessions_action = gio::SimpleAction::new("show-sessions", None);
- show_sessions_action.connect_activate(clone!(@weak self as app => move |_, _| {
- app.main_window().switch_to_sessions_page();
+ let show_session_action = gio::SimpleAction::new("show-session", None);
+ show_session_action.connect_activate(clone!(@weak self as app => move |_, _| {
+ app.main_window().switch_to_session_page();
}));
- self.add_action(&show_sessions_action);
+ self.add_action(&show_session_action);
let win = self.main_window();
let session_list = win.session_list();
session_list.connect_is_empty_notify(
- clone!(@weak show_sessions_action => move |session_list| {
- show_sessions_action.set_enabled(!session_list.is_empty());
+ clone!(@weak show_session_action => move |session_list| {
+ show_session_action.set_enabled(!session_list.is_empty());
}),
);
- show_sessions_action.set_enabled(!session_list.is_empty());
+ show_session_action.set_enabled(!session_list.is_empty());
}
/// Sets up keyboard shortcuts for application and window actions.
diff --git a/src/session/content/mod.rs b/src/session/content/mod.rs
index da51d019..8737cd15 100644
--- a/src/session/content/mod.rs
+++ b/src/session/content/mod.rs
@@ -31,6 +31,7 @@ mod imp {
pub struct Content {
pub compact: Cell,
pub session: WeakRef,
+ pub item_binding: RefCell