修复了关闭UI后实际没结束软件等BUG
This commit is contained in:
parent
db336184c3
commit
ed83c882cd
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -553,6 +553,7 @@ name = "ftphack"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"glib",
|
||||
"gtk",
|
||||
"libunftp",
|
||||
"tokio",
|
||||
|
@ -9,3 +9,4 @@ libunftp = "0.21.0"
|
||||
tokio = { version = "1.47.1", features = ["rt-multi-thread"] }
|
||||
unftp-sbe-fs = "0.3.0"
|
||||
async-trait = "0.1.50"
|
||||
glib = "0.18.5"
|
||||
|
20
src/main.rs
20
src/main.rs
@ -6,6 +6,7 @@ use std::path::PathBuf;
|
||||
use std::rc::Rc;
|
||||
use std::cell::RefCell;
|
||||
use gtk::prelude::*;
|
||||
use glib::Propagation;
|
||||
|
||||
fn main() {
|
||||
let rt = tokio::runtime::Builder::new_multi_thread()
|
||||
@ -101,6 +102,25 @@ fn main() {
|
||||
dialog.close();
|
||||
});
|
||||
|
||||
// Handle window close event
|
||||
let server_clone3 = server.clone();
|
||||
ui.window.connect_delete_event(move |_, _| {
|
||||
// Stop the server if it's running
|
||||
let mut server_ref = server_clone3.borrow_mut();
|
||||
if let Some(mut srv) = server_ref.take() {
|
||||
srv.stop();
|
||||
}
|
||||
|
||||
// Quit the GTK main loop
|
||||
gtk::main_quit();
|
||||
|
||||
// Quit the GTK main loop
|
||||
gtk::main_quit();
|
||||
|
||||
// Return Propagation::Proceed to allow the window to close
|
||||
Propagation::Proceed
|
||||
});
|
||||
|
||||
// Show window
|
||||
ui.window.show_all();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user