mirror of
https://github.com/gitbutlerapp/gitbutler.git
synced 2024-09-19 08:07:22 +03:00
make app run in background
This commit is contained in:
parent
add94e6559
commit
bcc93167c0
36
src-tauri/Cargo.lock
generated
36
src-tauri/Cargo.lock
generated
@ -1589,6 +1589,30 @@ dependencies = [
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libappindicator"
|
||||
version = "0.7.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "db2d3cb96d092b4824cb306c9e544c856a4cb6210c1081945187f7f1924b47e8"
|
||||
dependencies = [
|
||||
"glib",
|
||||
"gtk",
|
||||
"gtk-sys",
|
||||
"libappindicator-sys",
|
||||
"log",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libappindicator-sys"
|
||||
version = "0.7.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f1b3b6681973cea8cc3bce7391e6d7d5502720b80a581c9a95c9cbaf592826aa"
|
||||
dependencies = [
|
||||
"gtk-sys",
|
||||
"libloading",
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.139"
|
||||
@ -1609,6 +1633,16 @@ dependencies = [
|
||||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libloading"
|
||||
version = "0.7.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "libssh2-sys"
|
||||
version = "0.2.23"
|
||||
@ -3226,6 +3260,7 @@ dependencies = [
|
||||
"core-foundation",
|
||||
"core-graphics",
|
||||
"crossbeam-channel",
|
||||
"dirs-next",
|
||||
"dispatch",
|
||||
"gdk",
|
||||
"gdk-pixbuf",
|
||||
@ -3239,6 +3274,7 @@ dependencies = [
|
||||
"instant",
|
||||
"jni",
|
||||
"lazy_static",
|
||||
"libappindicator",
|
||||
"libc",
|
||||
"log",
|
||||
"ndk",
|
||||
|
@ -15,7 +15,7 @@ tauri-build = { version = "1.2", features = [] }
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
tauri = { version = "1.2", features = ["dialog-open", "fs-create-dir", "fs-exists", "fs-read-file", "fs-write-file", "path-all", "window-start-dragging"] }
|
||||
tauri = { version = "1.2", features = ["dialog-open", "fs-create-dir", "fs-exists", "fs-read-file", "fs-write-file", "path-all", "system-tray", "window-start-dragging"] }
|
||||
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev" }
|
||||
tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev", features = ["colored"] }
|
||||
log = "0.4.17"
|
||||
|
BIN
src-tauri/icons/tray.png
Normal file
BIN
src-tauri/icons/tray.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
@ -251,7 +251,42 @@ fn main() {
|
||||
))
|
||||
},
|
||||
|sentry_plugin| {
|
||||
let quit = tauri::CustomMenuItem::new("quit".to_string(), "Quit");
|
||||
let hide = tauri::CustomMenuItem::new("hide".to_string(), "Hide GitButler");
|
||||
let tray_menu = tauri::SystemTrayMenu::new().add_item(hide).add_item(quit);
|
||||
let tray = tauri::SystemTray::new().with_menu(tray_menu);
|
||||
tauri::Builder::default()
|
||||
.system_tray(tray)
|
||||
.on_window_event(|event| match event.event() {
|
||||
// Hide window instead of closing.
|
||||
tauri::WindowEvent::CloseRequested { api, .. } => {
|
||||
api.prevent_close();
|
||||
event.window().hide().unwrap();
|
||||
}
|
||||
_ => {}
|
||||
})
|
||||
.on_system_tray_event(|app, event| match event {
|
||||
tauri::SystemTrayEvent::MenuItemClick { id, .. } => {
|
||||
let item_handle = app.tray_handle().get_item(&id);
|
||||
match id.as_str() {
|
||||
"quit" => {
|
||||
app.exit(0);
|
||||
}
|
||||
"hide" => {
|
||||
let main_window = app.get_window("main").unwrap();
|
||||
if main_window.is_visible().unwrap() {
|
||||
main_window.hide().unwrap();
|
||||
item_handle.set_title("Show GitButler").unwrap();
|
||||
} else {
|
||||
main_window.show().unwrap();
|
||||
item_handle.set_title("Hide GitButler").unwrap();
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
})
|
||||
.setup(move |app| {
|
||||
let resolver = app.path_resolver();
|
||||
let storage = Storage::new(&resolver);
|
||||
|
@ -48,7 +48,7 @@ pub fn watch<R: Runtime>(
|
||||
project: &Project,
|
||||
) -> Result<(), WatchError> {
|
||||
self::delta::watch(window.clone(), watchers, project.clone())?;
|
||||
self::git::watch(window, project.clone())?;
|
||||
self::git::watch(window.clone(), project.clone())?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
@ -64,6 +64,10 @@
|
||||
"theme": "Dark",
|
||||
"titleBarStyle": "Overlay"
|
||||
}
|
||||
]
|
||||
],
|
||||
"systemTray": {
|
||||
"iconPath": "icons/tray.png",
|
||||
"iconAsTemplate": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user