diff options
author | jmb462 <jmb462@gmail.com> | 2022-02-12 14:40:49 +0100 |
---|---|---|
committer | Jean-Michel Bernard <jmb462@gmail.com> | 2022-04-03 21:07:39 +0200 |
commit | 0d17903bd5996a4a52729c5876fbad51c64becaf (patch) | |
tree | 8cccd85c1444482af8034ed129b6638cb0fa96a5 | |
parent | 7bb963efe9083662baa356f56a2d5c368b96a9a0 (diff) |
Fix TextEdit v_scroll_speed invalid values breaks wheel scrolling
-rw-r--r-- | editor/editor_settings.cpp | 2 | ||||
-rw-r--r-- | scene/gui/text_edit.cpp | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 1364f7891e..66bbb79de8 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -542,7 +542,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) { _initial_set("text_editor/behavior/navigation/move_caret_on_right_click", true); _initial_set("text_editor/behavior/navigation/scroll_past_end_of_file", false); _initial_set("text_editor/behavior/navigation/smooth_scrolling", true); - _initial_set("text_editor/behavior/navigation/v_scroll_speed", 80); + EDITOR_SETTING(Variant::INT, PROPERTY_HINT_RANGE, "text_editor/behavior/navigation/v_scroll_speed", 80, "1,10000,1") // Behavior: Indent EDITOR_SETTING(Variant::INT, PROPERTY_HINT_ENUM, "text_editor/behavior/indent/type", 0, "Tabs,Spaces") diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 3c80e3f987..66c3048f32 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -471,6 +471,11 @@ void TextEdit::_notification(int p_what) { // To ensure minimap is responsive override the speed setting. double vel = ((target_y / dist) * ((minimap_clicked) ? 3000 : v_scroll_speed)) * get_physics_process_delta_time(); + // Prevent too small velocity to block scrolling + if (Math::abs(vel) < v_scroll->get_step()) { + vel = v_scroll->get_step() * SIGN(vel); + } + if (Math::abs(vel) >= dist) { set_v_scroll(target_v_scroll); scrolling = false; @@ -4390,6 +4395,8 @@ int TextEdit::get_h_scroll() const { } void TextEdit::set_v_scroll_speed(float p_speed) { + // Prevent setting a vertical scroll speed value under 1.0 + ERR_FAIL_COND(p_speed < 1.0); v_scroll_speed = p_speed; } |