mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-04-21 20:43:19 +03:00
Add cmd-q shortcut on macOS (#270)
This commit is contained in:
committed by
GitHub
parent
615c75817a
commit
5d1745a60c
@@ -49,7 +49,11 @@ fn gtk_main() -> glib::ExitCode {
|
|||||||
.application_id("de.feschber.LanMouse")
|
.application_id("de.feschber.LanMouse")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
app.connect_startup(|_| load_icons());
|
app.connect_startup(|app| {
|
||||||
|
load_icons();
|
||||||
|
setup_actions(app);
|
||||||
|
setup_menu(app);
|
||||||
|
});
|
||||||
app.connect_activate(build_ui);
|
app.connect_activate(build_ui);
|
||||||
|
|
||||||
let args: Vec<&'static str> = vec![];
|
let args: Vec<&'static str> = vec![];
|
||||||
@@ -62,6 +66,33 @@ fn load_icons() {
|
|||||||
icon_theme.add_resource_path("/de/feschber/LanMouse/icons");
|
icon_theme.add_resource_path("/de/feschber/LanMouse/icons");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add application actions
|
||||||
|
fn setup_actions(app: &adw::Application) {
|
||||||
|
// Quit action
|
||||||
|
// This is important on macOS, where users expect a File->Quit action with a Cmd+Q shortcut.
|
||||||
|
let quit_action = gio::SimpleAction::new("quit", None);
|
||||||
|
quit_action.connect_activate({
|
||||||
|
let app = app.clone();
|
||||||
|
move |_, _| {
|
||||||
|
app.quit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
app.add_action(&quit_action);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set up a global menu
|
||||||
|
//
|
||||||
|
// Currently this is used only on macOS
|
||||||
|
fn setup_menu(app: &adw::Application) {
|
||||||
|
let menu = gio::Menu::new();
|
||||||
|
|
||||||
|
let file_menu = gio::Menu::new();
|
||||||
|
file_menu.append(Some("Quit"), Some("app.quit"));
|
||||||
|
menu.append_submenu(Some("_File"), &file_menu);
|
||||||
|
|
||||||
|
app.set_menubar(Some(&menu))
|
||||||
|
}
|
||||||
|
|
||||||
fn build_ui(app: &Application) {
|
fn build_ui(app: &Application) {
|
||||||
log::debug!("connecting to lan-mouse-socket");
|
log::debug!("connecting to lan-mouse-socket");
|
||||||
let (mut frontend_rx, frontend_tx) = match lan_mouse_ipc::connect() {
|
let (mut frontend_rx, frontend_tx) = match lan_mouse_ipc::connect() {
|
||||||
|
|||||||
Reference in New Issue
Block a user