Browse Source

content: Unselect room on ESC

merge-requests/1327/merge
Kai A. Hiller 5 years ago committed by Julian Sparber
parent
commit
8a86bd2ad7
  1. 7
      data/resources/ui/shortcuts.ui
  2. 1
      src/application.rs
  3. 2
      src/session/mod.rs
  4. 7
      src/window.rs

7
data/resources/ui/shortcuts.ui

@ -27,10 +27,15 @@
<property name="action-name">win.toggle-room-search</property> <property name="action-name">win.toggle-room-search</property>
</object> </object>
</child> </child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" translatable="yes" context="shortcut window">Close Room</property>
<property name="action-name">win.close-room</property>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</interface> </interface>

1
src/application.rs

@ -125,6 +125,7 @@ impl Application {
self.set_accels_for_action("app.quit", &["<Control>q"]); self.set_accels_for_action("app.quit", &["<Control>q"]);
self.set_accels_for_action("win.show-help-overlay", &["<Control>question"]); self.set_accels_for_action("win.show-help-overlay", &["<Control>question"]);
self.set_accels_for_action("win.toggle-room-search", &["<Control>k"]); self.set_accels_for_action("win.toggle-room-search", &["<Control>k"]);
self.set_accels_for_action("win.close-room", &["Escape"]);
} }
fn setup_css(&self) { fn setup_css(&self) {

2
src/session/mod.rs

@ -202,7 +202,7 @@ impl Session {
priv_.selected_room.borrow().clone() priv_.selected_room.borrow().clone()
} }
fn set_selected_room(&self, selected_room: Option<Room>) { pub fn set_selected_room(&self, selected_room: Option<Room>) {
let priv_ = imp::Session::from_instance(self); let priv_ = imp::Session::from_instance(self);
if self.selected_room() == selected_room { if self.selected_room() == selected_room {

7
src/window.rs

@ -1,4 +1,5 @@
use crate::config::{APP_ID, PROFILE}; use crate::config::{APP_ID, PROFILE};
use crate::gio::SimpleAction;
use crate::secret; use crate::secret;
use crate::Application; use crate::Application;
use crate::Login; use crate::Login;
@ -115,6 +116,12 @@ impl Window {
"search-mode-enabled", "search-mode-enabled",
); );
self.add_action(&room_search_toggle_action); self.add_action(&room_search_toggle_action);
let close_room_action = SimpleAction::new("close-room", None);
close_room_action.connect_activate(clone!(@weak session => move |_, _| {
session.set_selected_room(None);
}));
self.add_action(&close_room_action);
} }
fn restore_sessions(&self) { fn restore_sessions(&self) {

Loading…
Cancel
Save