diff --git a/crates/ui/src/input/element.rs b/crates/ui/src/input/element.rs index b25de1ce..bf7c71b8 100644 --- a/crates/ui/src/input/element.rs +++ b/crates/ui/src/input/element.rs @@ -514,7 +514,6 @@ impl Element for TextElement { } // And reset focused_input when next_frame start - window.on_next_frame({ let input_view = self.input.clone(); move |window, cx| { diff --git a/crates/ui/src/input/input.rs b/crates/ui/src/input/input.rs index eeb49e14..410ad2e6 100644 --- a/crates/ui/src/input/input.rs +++ b/crates/ui/src/input/input.rs @@ -34,7 +34,7 @@ use crate::indicator::Indicator; use crate::input::clear_button; use crate::scroll::{Scrollbar, ScrollbarAxis, ScrollbarState}; use crate::{h_flex, StyledExt}; -use crate::ActiveTheme; +use crate::{ActiveTheme, Root}; use crate::{IconName, Size}; use crate::{Sizable, StyleSized}; @@ -1490,6 +1490,9 @@ impl TextInput { self.blink_cursor.update(cx, |cursor, cx| { cursor.stop(cx); }); + Root::update(window, cx, |root, _, _| { + root.focused_input = None; + }); cx.emit(InputEvent::Blur); }