From 8ba2185f431766ad7a0cc4b44151b5ce6cf4b3fa Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Wed, 28 Aug 2024 12:56:07 -0400 Subject: [PATCH] fix: reset text_input focus when clicked outside --- src/widget/text_input/input.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/widget/text_input/input.rs b/src/widget/text_input/input.rs index 62193d92..570a791a 100644 --- a/src/widget/text_input/input.rs +++ b/src/widget/text_input/input.rs @@ -1429,13 +1429,12 @@ where return event::Status::Captured; } - + let mut is_trailing_clicked = false; if is_editable { if let Some(trailing_layout) = trailing_icon_layout { - let is_trailing_clicked = - cursor.is_over(trailing_layout.bounds()) && on_toggle_edit.is_some(); + is_trailing_clicked = cursor.is_over(trailing_layout.bounds()); - if is_trailing_clicked { + if is_trailing_clicked && on_toggle_edit.is_some() { let Some(pos) = cursor.position() else { return event::Status::Ignored; }; @@ -1472,6 +1471,14 @@ where } } } + + if !is_trailing_clicked && click_position.is_none() { + state.is_focused = None; + state.dragging_state = None; + state.is_pasting = None; + + state.keyboard_modifiers = keyboard::Modifiers::default(); + } } Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)) | Event::Touch(touch::Event::FingerLifted { .. } | touch::Event::FingerLost { .. }) => {