Remove some lagginess from TextEdit's smooth scrolling

This commit is contained in:
Bernhard Liebl 2017-12-28 15:49:37 +01:00
parent a663dbfdd8
commit d640542f6d

View File

@ -3119,6 +3119,9 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) {
void TextEdit::_scroll_up(real_t p_delta) {
if (scrolling && smooth_scroll_enabled && SGN(target_v_scroll - v_scroll->get_value()) != SGN(-p_delta))
scrolling = false;
if (scrolling) {
target_v_scroll = (target_v_scroll - p_delta);
} else {
@ -3129,8 +3132,12 @@ void TextEdit::_scroll_up(real_t p_delta) {
if (target_v_scroll <= 0) {
target_v_scroll = 0;
}
scrolling = true;
set_physics_process(true);
if (Math::abs(target_v_scroll - v_scroll->get_value()) < 1.0) {
v_scroll->set_value(target_v_scroll);
} else {
scrolling = true;
set_physics_process(true);
}
} else {
v_scroll->set_value(target_v_scroll);
}
@ -3138,6 +3145,9 @@ void TextEdit::_scroll_up(real_t p_delta) {
void TextEdit::_scroll_down(real_t p_delta) {
if (scrolling && smooth_scroll_enabled && SGN(target_v_scroll - v_scroll->get_value()) != SGN(p_delta))
scrolling = false;
if (scrolling) {
target_v_scroll = (target_v_scroll + p_delta);
} else {
@ -3154,8 +3164,13 @@ void TextEdit::_scroll_down(real_t p_delta) {
if (target_v_scroll > max_v_scroll) {
target_v_scroll = max_v_scroll;
}
scrolling = true;
set_physics_process(true);
if (Math::abs(target_v_scroll - v_scroll->get_value()) < 1.0) {
v_scroll->set_value(target_v_scroll);
} else {
scrolling = true;
set_physics_process(true);
}
} else {
v_scroll->set_value(target_v_scroll);
}