diff options
Diffstat (limited to 'scene/gui/slider.cpp')
-rw-r--r-- | scene/gui/slider.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/scene/gui/slider.cpp b/scene/gui/slider.cpp index 586334a0b4..69d281e373 100644 --- a/scene/gui/slider.cpp +++ b/scene/gui/slider.cpp @@ -64,6 +64,8 @@ void Slider::gui_input(const Ref<InputEvent> &p_event) { } grab.pos = orientation == VERTICAL ? mb->get_position().y : mb->get_position().x; + grab.value_before_dragging = get_as_ratio(); + emit_signal(SNAME("drag_started")); double grab_width = (double)grabber->get_width(); double grab_height = (double)grabber->get_height(); @@ -78,12 +80,11 @@ void Slider::gui_input(const Ref<InputEvent> &p_event) { grab.active = true; grab.uvalue = get_as_ratio(); - emit_signal(SNAME("drag_started")); _notify_shared_value_changed(); } else { grab.active = false; - const bool value_changed = !Math::is_equal_approx((double)grab.uvalue, get_as_ratio()); + const bool value_changed = !Math::is_equal_approx((double)grab.value_before_dragging, get_as_ratio()); emit_signal(SNAME("drag_ended"), value_changed); } } else if (scrollable) { |