aboutsummaryrefslogtreecommitdiff
path: root/src/app/runtime.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/runtime.rs')
-rw-r--r--src/app/runtime.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/app/runtime.rs b/src/app/runtime.rs
index 6ef9a786..e3d5bc92 100644
--- a/src/app/runtime.rs
+++ b/src/app/runtime.rs
@@ -68,6 +68,20 @@ impl App {
crate::api::schema::Method::ServerStop(_)
| crate::api::schema::Method::ServerLiveHandoff(_)
);
+ if matches!(
+ &msg.request.method,
+ crate::api::schema::Method::WorktreeCreate(_)
+ | crate::api::schema::Method::WorktreeRemove(_)
+ ) {
+ self.drain_all_internal_events();
+ let deferred_changed =
+ self.handle_deferred_worktree_api_request(msg.request, msg.respond_to);
+ if !skip_default_workspace {
+ changed |= self.ensure_default_workspace();
+ }
+ self.sync_prefix_input_source(previous_mode);
+ return changed | deferred_changed;
+ }
let response = self.handle_api_request(msg.request);
if !skip_default_workspace {
changed |= self.ensure_default_workspace();