@@ -6572,25 +6572,27 @@ pub(crate) fn show_error_toast(
.is_some()
{ // Hide the cancelled by user message
} else {
- workspace.update(cx, |workspace, cx| {
- let workspace_weak = cx.weak_entity();
- let toast = StatusToast::new(format!("git {} failed", action), cx, |this, _cx| {
- this.icon(
- Icon::new(IconName::XCircle)
- .size(IconSize::Small)
- .color(Color::Error),
- )
- .action("View Log", move |window, cx| {
- let message = message.clone();
- let action = action.clone();
- workspace_weak
- .update(cx, move |workspace, cx| {
- open_output(action, workspace, &message, window, cx)
- })
- .ok();
- })
+ cx.defer(move |cx| {
+ workspace.update(cx, |workspace, cx| {
+ let workspace_weak = cx.weak_entity();
+ let toast = StatusToast::new(format!("git {} failed", action), cx, |this, _cx| {
+ this.icon(
+ Icon::new(IconName::XCircle)
+ .size(IconSize::Small)
+ .color(Color::Error),
+ )
+ .action("View Log", move |window, cx| {
+ let message = message.clone();
+ let action = action.clone();
+ workspace_weak
+ .update(cx, move |workspace, cx| {
+ open_output(action, workspace, &message, window, cx)
+ })
+ .ok();
+ })
+ });
+ workspace.toggle_status_toast(toast, cx)
});
- workspace.toggle_status_toast(toast, cx)
});
}
}