diff --git a/cosmic-settings/src/app.rs b/cosmic-settings/src/app.rs index 5c37232..72f55f5 100644 --- a/cosmic-settings/src/app.rs +++ b/cosmic-settings/src/app.rs @@ -525,6 +525,16 @@ impl cosmic::Application for SettingsApp { .dialog(self.active_page) .map(|e| e.map(Message::PageMessage)) } + + fn on_close_requested(&self, id: window::Id) -> Option { + if id == window::Id::MAIN { + std::thread::spawn(|| { + std::thread::sleep(tokio::time::Duration::from_millis(100)); + std::process::exit(0); + }); + } + None + } } impl SettingsApp { diff --git a/cosmic-settings/src/main.rs b/cosmic-settings/src/main.rs index 117ec7a..262e7f9 100644 --- a/cosmic-settings/src/main.rs +++ b/cosmic-settings/src/main.rs @@ -116,7 +116,8 @@ pub fn main() -> color_eyre::Result<()> { let args = Args::parse(); let settings = cosmic::app::Settings::default() - .size_limits(Limits::NONE.min_width(400.0).min_height(300.0)); + .size_limits(Limits::NONE.min_width(400.0).min_height(300.0)) + .exit_on_close(false); cosmic::app::run_single_instance::(settings, args)?;