diff --git a/src/gui/app.rs b/src/gui/app.rs index b780f96..ae362e1 100644 --- a/src/gui/app.rs +++ b/src/gui/app.rs @@ -17,13 +17,23 @@ enum Stage { About, } -#[derive(Debug, Default)] +#[derive(Debug)] pub struct Flags { pub elevated: bool, pub debug: bool, closing: bool, } +impl Default for Flags { + fn default() -> Self { + Self { + elevated: win::is_elevated(), + debug: false, + closing: false, + } + } +} + #[derive(Debug, Default)] pub struct App { pub meta: Meta, diff --git a/src/gui/run.rs b/src/gui/run.rs index fd93870..4b54eb5 100644 --- a/src/gui/run.rs +++ b/src/gui/run.rs @@ -34,11 +34,9 @@ fn app_creator( app.settings = persistent_state.settings; } // check if we're elevated. if not, and the user wants an elevated launch - relaunch elevated - let elevated = util::win::is_elevated(); - if app.settings.start_elevated && !elevated { + if !app.flags.elevated && app.settings.start_elevated { util::win::elevate(util::win::ElevationExitMethod::Forced); } - app.flags.elevated = elevated; // refresh sysinfo because it initializes with nothing app.sysinfo.refresh_all(); // enable image loading support in egui