fix(tauri): exit app on close and grant ipc permissions & update changelog

This commit is contained in:
Psychotoxical
2026-03-09 19:35:25 +01:00
parent 7cc90e2ab7
commit 1cf71f51b5
4 changed files with 21 additions and 3 deletions
+5
View File
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.1] - Beta Hotfix
### Fixed
- **App Termination Bug**: Fixed an issue where the application would hang in the background when the close button was clicked due to default Tauri tray icon handling. The `exit_app` event is now correctly triggered.
## [0.1.0] - Initial Release
### Added
+5 -1
View File
@@ -23,6 +23,10 @@
"fs:allow-mkdir",
"fs:scope-download-recursive",
"fs:scope-home-recursive",
"core:window:allow-set-title"
"core:window:allow-set-title",
"core:window:allow-close",
"core:window:allow-hide",
"core:window:allow-show",
"core:app:allow-exit"
]
}
+7 -2
View File
@@ -12,6 +12,11 @@ fn greet(name: &str) -> String {
format!("Hello, {}!", name)
}
#[tauri::command]
fn exit_app(app_handle: tauri::AppHandle) {
app_handle.exit(0);
}
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_shell::init())
@@ -54,7 +59,7 @@ pub fn run() {
}
}
"quit" => {
app.exit(0);
std::process::exit(0);
}
_ => {}
})
@@ -102,7 +107,7 @@ pub fn run() {
let _ = window.emit("window:close-requested", ());
}
})
.invoke_handler(tauri::generate_handler![greet])
.invoke_handler(tauri::generate_handler![greet, exit_app])
.run(tauri::generate_context!())
.expect("error while running Psysonic");
}
+4
View File
@@ -1,6 +1,7 @@
import React, { useEffect, useState, useCallback } from 'react';
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import { listen } from '@tauri-apps/api/event';
import { invoke } from '@tauri-apps/api/core';
import { getCurrentWindow } from '@tauri-apps/api/window';
import Sidebar from './components/Sidebar';
import PlayerBar from './components/PlayerBar';
@@ -207,6 +208,9 @@ function TauriEventBridge() {
if (minimizeToTray) {
event.preventDefault();
await win.hide();
} else {
// If not minimizing to tray, we want to exit the app completely
await invoke('exit_app');
}
}).then(u => unlisten.push(u));