From ce45af20f8f1d7c803b20c8af37fdd3adac641e2 Mon Sep 17 00:00:00 2001 From: Ashley Wulber Date: Fri, 1 Mar 2024 14:35:04 -0500 Subject: [PATCH] fix: better diffing of input state this could still be improved, but should probably be refactored. --- src/widget/text_input/input.rs | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/widget/text_input/input.rs b/src/widget/text_input/input.rs index 855fce4b..7077f368 100644 --- a/src/widget/text_input/input.rs +++ b/src/widget/text_input/input.rs @@ -472,7 +472,32 @@ where state.dragging_state = None; } - if state.is_secure != self.is_secure { + if state.is_secure != self.is_secure + || state + .value + .buffer() + .lines + .iter() + .map(|l| l.text()) + .collect::() + != self.value.to_string() + || state + .label + .buffer() + .lines + .iter() + .map(|l| l.text()) + .collect::() + != self.label.unwrap_or_default() + || state + .helper_text + .buffer() + .lines + .iter() + .map(|l| l.text()) + .collect::() + != self.helper_text.unwrap_or_default() + { state.is_secure = self.is_secure; state.dirty = true; }