fix(core): initialize system tray before app windows

This commit is contained in:
Lucas Nogueira 2021-08-31 14:53:27 -03:00
parent 4042769e88
commit dbe0d21b6f
No known key found for this signature in database
GPG Key ID: 2714B66BCFB01F7F
2 changed files with 28 additions and 23 deletions

View File

@ -0,0 +1,5 @@
---
"tauri": patch
---
Initialize system tray before windows so `tray_handle` can be accessed on command handlers.

View File

@ -914,29 +914,6 @@ impl<R: Runtime> Builder<R> {
},
};
app.manager.initialize_plugins(&app.handle())?;
let pending_labels = self
.pending_windows
.iter()
.map(|p| p.label.clone())
.collect::<Vec<_>>();
#[cfg(feature = "updater")]
let mut main_window = None;
for pending in self.pending_windows {
let pending = app
.manager
.prepare_window(app.handle.clone(), pending, &pending_labels)?;
let detached = app.runtime.as_ref().unwrap().create_window(pending)?;
let _window = app.manager.attach_window(app.handle(), detached);
#[cfg(feature = "updater")]
if main_window.is_none() {
main_window = Some(_window);
}
}
#[cfg(feature = "system-tray")]
if let Some(system_tray) = self.system_tray {
let mut ids = HashMap::new();
@ -1027,6 +1004,29 @@ impl<R: Runtime> Builder<R> {
}
}
app.manager.initialize_plugins(&app.handle())?;
let pending_labels = self
.pending_windows
.iter()
.map(|p| p.label.clone())
.collect::<Vec<_>>();
#[cfg(feature = "updater")]
let mut main_window = None;
for pending in self.pending_windows {
let pending = app
.manager
.prepare_window(app.handle.clone(), pending, &pending_labels)?;
let detached = app.runtime.as_ref().unwrap().create_window(pending)?;
let _window = app.manager.attach_window(app.handle(), detached);
#[cfg(feature = "updater")]
if main_window.is_none() {
main_window = Some(_window);
}
}
(self.setup)(&mut app).map_err(|e| crate::Error::Setup(e))?;
#[cfg(feature = "updater")]