Merge pull request #23608 from RySchmitt/fix_spin_slider
Improve dragging behavior of editor_spin_slider
This commit is contained in:
commit
7198f5da9b
|
@ -63,6 +63,7 @@ void EditorSpinSlider::_gui_input(const Ref<InputEvent> &p_event) {
|
||||||
|
|
||||||
grabbing_spinner_attempt = true;
|
grabbing_spinner_attempt = true;
|
||||||
grabbing_spinner_dist_cache = 0;
|
grabbing_spinner_dist_cache = 0;
|
||||||
|
pre_grab_value = get_value();
|
||||||
grabbing_spinner = false;
|
grabbing_spinner = false;
|
||||||
grabbing_spinner_mouse_pos = Input::get_singleton()->get_mouse_position();
|
grabbing_spinner_mouse_pos = Input::get_singleton()->get_mouse_position();
|
||||||
}
|
}
|
||||||
|
@ -107,10 +108,10 @@ void EditorSpinSlider::_gui_input(const Ref<InputEvent> &p_event) {
|
||||||
if (ABS(grabbing_spinner_dist_cache) > 6) {
|
if (ABS(grabbing_spinner_dist_cache) > 6) {
|
||||||
set_value(get_value() + SGN(grabbing_spinner_dist_cache));
|
set_value(get_value() + SGN(grabbing_spinner_dist_cache));
|
||||||
grabbing_spinner_dist_cache = 0;
|
grabbing_spinner_dist_cache = 0;
|
||||||
|
pre_grab_value = get_value();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
set_value(get_value() + get_step() * grabbing_spinner_dist_cache * 10);
|
set_value(pre_grab_value + get_step() * grabbing_spinner_dist_cache * 10);
|
||||||
grabbing_spinner_dist_cache = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (updown_offset != -1) {
|
} else if (updown_offset != -1) {
|
||||||
|
@ -434,6 +435,7 @@ EditorSpinSlider::EditorSpinSlider() {
|
||||||
grabbing_spinner_attempt = false;
|
grabbing_spinner_attempt = false;
|
||||||
grabbing_spinner = false;
|
grabbing_spinner = false;
|
||||||
grabbing_spinner_dist_cache = 0;
|
grabbing_spinner_dist_cache = 0;
|
||||||
|
pre_grab_value = 0;
|
||||||
set_focus_mode(FOCUS_ALL);
|
set_focus_mode(FOCUS_ALL);
|
||||||
updown_offset = -1;
|
updown_offset = -1;
|
||||||
hover_updown = false;
|
hover_updown = false;
|
||||||
|
|
|
@ -59,6 +59,7 @@ class EditorSpinSlider : public Range {
|
||||||
bool read_only;
|
bool read_only;
|
||||||
float grabbing_spinner_dist_cache;
|
float grabbing_spinner_dist_cache;
|
||||||
Vector2 grabbing_spinner_mouse_pos;
|
Vector2 grabbing_spinner_mouse_pos;
|
||||||
|
double pre_grab_value;
|
||||||
|
|
||||||
LineEdit *value_input;
|
LineEdit *value_input;
|
||||||
bool value_input_just_closed;
|
bool value_input_just_closed;
|
||||||
|
|
Loading…
Reference in New Issue