diff --git a/src/widget/text_input/input.rs b/src/widget/text_input/input.rs index 4b76c7fc..0bd6cbc3 100644 --- a/src/widget/text_input/input.rs +++ b/src/widget/text_input/input.rs @@ -719,6 +719,14 @@ where let line_height = self.line_height; if self.is_editable { + if let Some(ref on_edit) = self.on_toggle_edit { + let state = tree.state.downcast_mut::(); + if !state.is_read_only && state.is_focused.is_none() { + state.is_read_only = true; + shell.publish((on_edit)(false)); + } + } + let index = tree.children.len() - 1; if let (Some(trailing_icon), Some(tree)) = (self.trailing_icon.as_mut(), tree.children.get_mut(index))