diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index c3a17bd25b..354abceb28 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -419,6 +419,12 @@ where clipboard.write(selection); } } + Update::Cut => { + if let Some(selection) = self.content.selection() { + clipboard.write(selection.clone()); + shell.publish(on_edit(Action::Edit(Edit::Delete))); + } + } Update::Paste => { if let Some(contents) = clipboard.read() { shell.publish(on_edit(Action::Edit(Edit::Paste( @@ -575,6 +581,7 @@ enum Update { Release, Action(Action), Copy, + Cut, Paste, } @@ -684,6 +691,11 @@ impl Update { { Some(Self::Copy) } + keyboard::Key::Character("x") + if modifiers.command() => + { + Some(Self::Cut) + } keyboard::Key::Character("v") if modifiers.command() && !modifiers.alt() => {