From 24215adbb881caf806e07d8594b7302f8ea6683d Mon Sep 17 00:00:00 2001 From: Astyyyyy Date: Mon, 3 Nov 2025 18:00:04 +1030 Subject: [PATCH 1/3] Fix: fix textbox input on sliders not registering --- .../src/dashboard/components/settings_controls/number.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alvr/dashboard/src/dashboard/components/settings_controls/number.rs b/alvr/dashboard/src/dashboard/components/settings_controls/number.rs index a7dc49c817..9d53ef9c2b 100644 --- a/alvr/dashboard/src/dashboard/components/settings_controls/number.rs +++ b/alvr/dashboard/src/dashboard/components/settings_controls/number.rs @@ -129,7 +129,7 @@ impl Control { } }; - if response.drag_started() || response.gained_focus() { + if response.drag_started() || response.clicked() { self.editing_value_f64 = Some(session_value) } else if response.drag_stopped() || response.lost_focus() { request = get_request(&self.nesting_info, *editing_value_mut, self.ty); From 096718009be96f860cf32c33539efc8eb30c7968 Mon Sep 17 00:00:00 2001 From: Astyyyyy Date: Mon, 3 Nov 2025 21:58:41 +1030 Subject: [PATCH 2/3] Add back response.gained_focus() --- .../src/dashboard/components/settings_controls/number.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alvr/dashboard/src/dashboard/components/settings_controls/number.rs b/alvr/dashboard/src/dashboard/components/settings_controls/number.rs index 9d53ef9c2b..4f191f550e 100644 --- a/alvr/dashboard/src/dashboard/components/settings_controls/number.rs +++ b/alvr/dashboard/src/dashboard/components/settings_controls/number.rs @@ -129,7 +129,7 @@ impl Control { } }; - if response.drag_started() || response.clicked() { + if response.drag_started() || response.gained_focus() || response.clicked() { self.editing_value_f64 = Some(session_value) } else if response.drag_stopped() || response.lost_focus() { request = get_request(&self.nesting_info, *editing_value_mut, self.ty); From a0aca9cf471b4a29c9d7beb857b265131beea604 Mon Sep 17 00:00:00 2001 From: Astyyyyy Date: Thu, 6 Nov 2025 20:23:34 +1030 Subject: [PATCH 3/3] properly fix sliding textboxes this time --- .../components/settings_controls/number.rs | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/alvr/dashboard/src/dashboard/components/settings_controls/number.rs b/alvr/dashboard/src/dashboard/components/settings_controls/number.rs index 4f191f550e..f534bad9b8 100644 --- a/alvr/dashboard/src/dashboard/components/settings_controls/number.rs +++ b/alvr/dashboard/src/dashboard/components/settings_controls/number.rs @@ -79,7 +79,7 @@ impl Control { &mut session_value }; - let response = match &self.gui_type { + match &self.gui_type { NumericGuiType::Slider { range, step, @@ -111,9 +111,16 @@ impl Control { if let Some(suffix) = &self.suffix { drag_value = drag_value.suffix(suffix); } - let textbox_response = ui.add(drag_value); - - slider_response.union(textbox_response) + let sliding_textbox_response = ui.add(drag_value); + + if slider_response.drag_started() || sliding_textbox_response.drag_started() || sliding_textbox_response.gained_focus() { + self.editing_value_f64 = Some(session_value); + } else if slider_response.drag_stopped() || sliding_textbox_response.drag_stopped() || slider_response.lost_focus() || sliding_textbox_response.lost_focus() { + if let Some(editing_value) = self.editing_value_f64.take() { + request = get_request(&self.nesting_info, editing_value, self.ty); + *session_fragment = to_json_value(editing_value, self.ty); + } + } } NumericGuiType::TextBox => { let mut drag_value = DragValue::new(editing_value_mut); @@ -124,20 +131,19 @@ impl Control { if let Some(suffix) = &self.suffix { drag_value = drag_value.suffix(suffix); } + let textbox_response = ui.add(drag_value); - ui.add(drag_value) + if textbox_response.drag_started() || textbox_response.gained_focus() { + self.editing_value_f64 = Some(session_value); + } else if textbox_response.drag_stopped() || textbox_response.lost_focus() { + if let Some(editing_value) = self.editing_value_f64.take() { + request = get_request(&self.nesting_info, editing_value, self.ty); + *session_fragment = to_json_value(editing_value, self.ty); + } + } } }; - if response.drag_started() || response.gained_focus() || response.clicked() { - self.editing_value_f64 = Some(session_value) - } else if response.drag_stopped() || response.lost_focus() { - request = get_request(&self.nesting_info, *editing_value_mut, self.ty); - *session_fragment = to_json_value(*editing_value_mut, self.ty); - - self.editing_value_f64 = None; - } - if reset::reset_button( ui, !f64_eq(session_value, self.default),