From e7471f1191081ecb514fe129bb8618938b67e796 Mon Sep 17 00:00:00 2001 From: bilabila Date: Sat, 10 Dec 2022 17:05:51 +0800 Subject: [PATCH] Fix drag_value.edit_string unexpected reset (#2421) * Fix drag_value.edit_string unexpected reset solve issue #2418 #2370 * Also reset drag_value.edit_string on click * Fix for clippy check --- crates/egui/src/widgets/drag_value.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/egui/src/widgets/drag_value.rs b/crates/egui/src/widgets/drag_value.rs index 59ccbd82..66b19051 100644 --- a/crates/egui/src/widgets/drag_value.rs +++ b/crates/egui/src/widgets/drag_value.rs @@ -379,6 +379,9 @@ impl<'a> Widget for DragValue<'a> { // screen readers. ui.memory().interested_in_focus(id); let is_kb_editing = ui.memory().has_focus(id); + if ui.memory().gained_focus(id) { + ui.memory().drag_value.edit_string = None; + } let old_value = get(&mut get_set_value); let mut value = old_value; @@ -476,7 +479,6 @@ impl<'a> Widget for DragValue<'a> { ui.memory().drag_value.edit_string = Some(value_text); response } else { - ui.memory().drag_value.edit_string = None; let button = Button::new( RichText::new(format!("{}{}{}", prefix, value_text.clone(), suffix)).monospace(), ) @@ -497,6 +499,7 @@ impl<'a> Widget for DragValue<'a> { } if response.clicked() { + ui.memory().drag_value.edit_string = None; ui.memory().request_focus(id); } else if response.dragged() { ui.output().cursor_icon = CursorIcon::ResizeHorizontal;