spawn with idle priority

This commit is contained in:
ranfdev
2023-11-15 12:11:39 +01:00
parent bbca7a4ffa
commit 83f8c2407e

View File

@ -30,16 +30,19 @@ impl<W: glib::IsA<gtk::Widget>> SpawnWithToast for W {
.ancestor(adw::ToastOverlay::static_type())
.and_downcast();
let win: Option<NotifyWindow> = self.ancestor(NotifyWindow::static_type()).and_downcast();
glib::MainContext::default().spawn_local(async move {
if let Err(e) = f.await {
if let Some(o) = toast_overlay
.as_ref()
.or_else(|| win.as_ref().map(|win| win.imp().toast_overlay.as_ref()))
{
o.add_toast(adw::Toast::builder().title(&e.to_string()).build())
glib::MainContext::ref_thread_default().spawn_local_with_priority(
glib::Priority::DEFAULT_IDLE,
async move {
if let Err(e) = f.await {
if let Some(o) = toast_overlay
.as_ref()
.or_else(|| win.as_ref().map(|win| win.imp().toast_overlay.as_ref()))
{
o.add_toast(adw::Toast::builder().title(&e.to_string()).build())
}
}
}
});
},
);
}
}