summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2022-11-20 11:36:16 +0100
committerRémi Verschelde <rverschelde@gmail.com>2022-11-20 11:36:16 +0100
commit8f00b79f23ea76dda0046355d1e1120ad206468f (patch)
tree3591cde6da37f3cb250f777d4b9e2372f1112d65
parent137327812b81c6ef4e037fdade3b2aa7ef5cce84 (diff)
parent3818be64a458df0e37011a6aa7e827f003e1995b (diff)
Merge pull request #68879 from TokageItLab/fix-bezier-editor-focus-mode
Fix the behavior of focus selection in bezier editor
-rw-r--r--editor/animation_bezier_editor.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/editor/animation_bezier_editor.cpp b/editor/animation_bezier_editor.cpp
index 4c7ebca299..af0c3fca5c 100644
--- a/editor/animation_bezier_editor.cpp
+++ b/editor/animation_bezier_editor.cpp
@@ -903,11 +903,17 @@ void AnimationBezierTrackEdit::gui_input(const Ref<InputEvent> &p_event) {
}
float zoom_value = timeline->get_zoom()->get_max() - zv;
- timeline->get_zoom()->set_value(zoom_value);
- timeline->call_deferred("set_value", minimum_time);
+ if (Math::is_finite(minimum_time) && Math::is_finite(maximum_time) && maximum_time - minimum_time > CMP_EPSILON) {
+ timeline->get_zoom()->set_value(zoom_value);
+ timeline->call_deferred("set_value", minimum_time);
+ }
- v_scroll = (maximum_value + minimum_value) / 2.0;
- v_zoom = (maximum_value - minimum_value) / ((get_size().height - timeline->get_size().height) * 0.9);
+ if (Math::is_finite(minimum_value) && Math::is_finite(maximum_value)) {
+ v_scroll = (maximum_value + minimum_value) / 2.0;
+ if (maximum_value - minimum_value > CMP_EPSILON) {
+ v_zoom = (maximum_value - minimum_value) / ((get_size().height - timeline->get_size().height) * 0.9);
+ }
+ }
queue_redraw();
accept_event();