diff --git a/editor/scene/3d/node_3d_editor_plugin.cpp b/editor/scene/3d/node_3d_editor_plugin.cpp index 753276b2be..3dafc64e36 100644 --- a/editor/scene/3d/node_3d_editor_plugin.cpp +++ b/editor/scene/3d/node_3d_editor_plugin.cpp @@ -2995,6 +2995,11 @@ void Node3DEditorViewport::_cursor_interpolated() { spatial_editor->update_grid(); } +void Node3DEditorViewport::_cursor_distance_scaled() { + zoom_indicator_delay = ZOOM_FREELOOK_INDICATOR_DELAY_S; + surface->queue_redraw(); +} + void Node3DEditorViewport::_freelook_changed() { spatial_editor->set_freelook_viewport(view_3d_controller->is_freelook_enabled() ? this : nullptr); } @@ -7052,6 +7057,7 @@ Node3DEditorViewport::Node3DEditorViewport(Node3DEditor *p_spatial_editor, int p view_3d_controller->connect("freelook_speed_scaled", callable_mp(this, &Node3DEditorViewport::_freelook_speed_scaled)); view_3d_controller->connect("cursor_panned", callable_mp(this, &Node3DEditorViewport::_disable_follow_mode)); view_3d_controller->connect("cursor_interpolated", callable_mp(this, &Node3DEditorViewport::_cursor_interpolated)); + view_3d_controller->connect("cursor_distance_scaled", callable_mp(this, &Node3DEditorViewport::_cursor_distance_scaled)); _update_view_3d_controller(true); _update_name(); diff --git a/editor/scene/3d/node_3d_editor_plugin.h b/editor/scene/3d/node_3d_editor_plugin.h index 9d0817f7d8..63beb2b428 100644 --- a/editor/scene/3d/node_3d_editor_plugin.h +++ b/editor/scene/3d/node_3d_editor_plugin.h @@ -394,6 +394,7 @@ private: void _update_view_3d_controller(bool p_update_all = true); void _cursor_interpolated(); + void _cursor_distance_scaled(); void _freelook_changed(); void _freelook_speed_scaled(); diff --git a/scene/debugger/view_3d_controller.cpp b/scene/debugger/view_3d_controller.cpp index 03ba53a21e..55d6b51cdb 100644 --- a/scene/debugger/view_3d_controller.cpp +++ b/scene/debugger/view_3d_controller.cpp @@ -619,6 +619,8 @@ void View3DController::scale_cursor_distance(const float p_scale) { } else { zoom_failed_attempts_count = 0; } + + emit_signal(SNAME("cursor_distance_scaled")); } void View3DController::set_shortcut(const ShortcutName p_name, const Ref &p_shortcut) { @@ -792,6 +794,7 @@ void View3DController::_bind_methods() { ADD_SIGNAL(MethodInfo("cursor_panned")); ADD_SIGNAL(MethodInfo("cursor_interpolated")); + ADD_SIGNAL(MethodInfo("cursor_distance_scaled")); } #endif // _3D_DISABLED