diff --git a/crates/runnable/src/static_source.rs b/crates/runnable/src/static_source.rs index 3a274b0a12a1f58f3e46f2ea53beb6e5280bc179..9edd7a1afe78ba2bc4e7c1908ce3cbbde9d62c45 100644 --- a/crates/runnable/src/static_source.rs +++ b/crates/runnable/src/static_source.rs @@ -79,7 +79,7 @@ impl Deserialize<'a> + PartialEq + 'static> TrackedFile { ) -> Model { cx.new_model(move |cx| { cx.spawn(|tracked_file, mut cx| async move { - while let Some(new_contents) = tracker.next().await { + while let Some(new_contents) = tracker.next().await.filter(|s| !s.is_empty()) { let Some(new_contents) = serde_json_lenient::from_str(&new_contents).log_err() else { continue; diff --git a/crates/terminal_view/src/terminal_panel.rs b/crates/terminal_view/src/terminal_panel.rs index aee6e907b65b2447b1b13f79b666e5a98c60d5cb..832132edcce9a70df17eeccc5149173d298b65f3 100644 --- a/crates/terminal_view/src/terminal_panel.rs +++ b/crates/terminal_view/src/terminal_panel.rs @@ -542,6 +542,13 @@ impl TerminalPanel { terminal_to_replace.set_terminal(new_terminal, cx); }); self.activate_terminal_view(terminal_item_index, cx); + let task_workspace = self.workspace.clone(); + cx.spawn(|_, mut cx| async move { + task_workspace + .update(&mut cx, |workspace, cx| workspace.focus_panel::(cx)) + .ok() + }) + .detach(); Some(()) } }