diff --git a/crates/agent/src/context_strip.rs b/crates/agent/src/context_strip.rs index 8fe1a21d74..f28e61aa82 100644 --- a/crates/agent/src/context_strip.rs +++ b/crates/agent/src/context_strip.rs @@ -84,6 +84,12 @@ impl ContextStrip { } } + /// Whether or not the context strip has items to display + pub fn has_context_items(&self, cx: &App) -> bool { + self.context_store.read(cx).context().next().is_some() + || self.suggested_context(cx).is_some() + } + fn added_contexts(&self, cx: &App) -> Vec { if let Some(workspace) = self.workspace.upgrade() { let project = workspace.read(cx).project().read(cx); @@ -104,14 +110,14 @@ impl ContextStrip { } } - fn suggested_context(&self, cx: &Context) -> Option { + fn suggested_context(&self, cx: &App) -> Option { match self.suggest_context_kind { SuggestContextKind::File => self.suggested_file(cx), SuggestContextKind::Thread => self.suggested_thread(cx), } } - fn suggested_file(&self, cx: &Context) -> Option { + fn suggested_file(&self, cx: &App) -> Option { let workspace = self.workspace.upgrade()?; let active_item = workspace.read(cx).active_item(cx)?; @@ -138,7 +144,7 @@ impl ContextStrip { }) } - fn suggested_thread(&self, cx: &Context) -> Option { + fn suggested_thread(&self, cx: &App) -> Option { if !self.context_picker.read(cx).allow_threads() { return None; } diff --git a/crates/agent/src/inline_prompt_editor.rs b/crates/agent/src/inline_prompt_editor.rs index 9ccc265509..693786ca07 100644 --- a/crates/agent/src/inline_prompt_editor.rs +++ b/crates/agent/src/inline_prompt_editor.rs @@ -451,7 +451,7 @@ impl PromptEditor { editor.move_to_end(&Default::default(), window, cx) }); } - } else { + } else if self.context_strip.read(cx).has_context_items(cx) { self.context_strip.focus_handle(cx).focus(window); } } diff --git a/crates/agent/src/message_editor.rs b/crates/agent/src/message_editor.rs index adaaa8e39a..b5133bc4fb 100644 --- a/crates/agent/src/message_editor.rs +++ b/crates/agent/src/message_editor.rs @@ -401,7 +401,7 @@ impl MessageEditor { fn move_up(&mut self, _: &MoveUp, window: &mut Window, cx: &mut Context) { if self.context_picker_menu_handle.is_deployed() { cx.propagate(); - } else { + } else if self.context_strip.read(cx).has_context_items(cx) { self.context_strip.focus_handle(cx).focus(window); } }