diff --git a/crates/agent_ui/src/message_editor.rs b/crates/agent_ui/src/message_editor.rs index 105de5f665cf3e7ffcd37fb58960e922b38b3593..8ad880bec06bcc8fd77c0548966bbb900d5f39b9 100644 --- a/crates/agent_ui/src/message_editor.rs +++ b/crates/agent_ui/src/message_editor.rs @@ -869,7 +869,20 @@ impl MessageEditor { } } + let has_non_text_content = cx + .read_from_clipboard() + .map(|item| { + item.entries().iter().any(|entry| { + matches!( + entry, + ClipboardEntry::Image(_) | ClipboardEntry::ExternalPaths(_) + ) + }) + }) + .unwrap_or(false); + if self.prompt_capabilities.borrow().image + && has_non_text_content && let Some(task) = paste_images_as_context( self.editor.clone(), self.mention_set.clone(), @@ -878,6 +891,7 @@ impl MessageEditor { cx, ) { + cx.stop_propagation(); task.detach(); return; }