diff --git a/publish/src/widget/iri_input.rs b/publish/src/widget/iri_input.rs index 27b7df4..e7341f0 100644 --- a/publish/src/widget/iri_input.rs +++ b/publish/src/widget/iri_input.rs @@ -4,6 +4,7 @@ use iced::advanced::layout::{Limits, Node}; use iced::advanced::renderer::Style; use iced::advanced::{Layout, Widget}; use iced::advanced::widget::{tree, Tree}; +use iced::clipboard::Content; use iced::mouse::{Cursor, Interaction}; use iced::widget::text_input::Catalog; use crate::rdf::curie::CurieHelper; @@ -155,7 +156,14 @@ where _ => {} } - Widget::update(&mut self.text_input, &mut tree.children[0], event, layout, cursor, renderer, shell, viewport) + Widget::update(&mut self.text_input, &mut tree.children[0], event, layout, cursor, renderer, shell, viewport); + + let clipboard = shell.clipboard_mut(); + if let Some(Content::Text(content)) = &clipboard.write { + if let Some(expanded) = self.curie_helper.expand(&content) { + clipboard.write = Some(Content::Text(expanded)); + } + } } fn mouse_interaction(&self, tree: &Tree, layout: Layout<'_>, cursor: Cursor, viewport: &Rectangle, renderer: &Renderer) -> Interaction {