feat: tray window

This commit is contained in:
lencx
2022-12-10 22:25:29 +08:00
parent 8339dc281c
commit 9478211397
11 changed files with 59 additions and 15 deletions

View File

@@ -3,6 +3,7 @@ use tauri::{
utils::assets::EmbeddedAssets, AboutMetadata, AppHandle, Context, CustomMenuItem, Manager,
Menu, MenuItem, Submenu, SystemTray, SystemTrayEvent, SystemTrayMenu, WindowMenuEvent,
};
use tauri_plugin_positioner::{on_tray_event, Position, WindowExt};
// --- Menu
pub fn init(chat_conf: &conf::ChatConfJson, context: &Context<EmbeddedAssets>) -> Menu {
@@ -159,16 +160,19 @@ pub fn tray_menu() -> SystemTray {
}
// --- SystemTray Event
pub fn tray_handler(app: &AppHandle, event: SystemTrayEvent) {
let win = app.get_window("core").unwrap();
pub fn tray_handler(handle: &AppHandle, event: SystemTrayEvent) {
let core_win = handle.get_window("core").unwrap();
on_tray_event(handle, &event);
if let SystemTrayEvent::LeftClick { .. } = event {
// TODO: tray window
if win.is_visible().unwrap() {
win.hide().unwrap();
core_win.minimize().unwrap();
let mini_win = handle.get_window("mini").unwrap();
mini_win.move_window(Position::TrayCenter).unwrap();
if mini_win.is_visible().unwrap() {
mini_win.hide().unwrap();
} else {
win.show().unwrap();
win.set_focus().unwrap();
mini_win.show().unwrap();
}
}
}