|
@@ -583,6 +583,19 @@ void CanvasItem::_notification(int p_what) {
|
|
|
if (!block_transform_notify && !xform_change.in_list()) {
|
|
|
get_tree()->xform_change_list.add(&xform_change);
|
|
|
}
|
|
|
+
|
|
|
+ // If using physics interpolation, reset for this node only,
|
|
|
+ // as a helper, as in most cases, users will want items reset when
|
|
|
+ // adding to the tree.
|
|
|
+ // In cases where they move immediately after adding,
|
|
|
+ // there will be little cost in having two resets as these are cheap,
|
|
|
+ // and it is worth it for convenience.
|
|
|
+ // Do not propagate to children, as each child of an added branch
|
|
|
+ // receives its own NOTIFICATION_ENTER_TREE, and this would
|
|
|
+ // cause unnecessary duplicate resets.
|
|
|
+ if (is_physics_interpolated_and_enabled()) {
|
|
|
+ notification(NOTIFICATION_RESET_PHYSICS_INTERPOLATION);
|
|
|
+ }
|
|
|
} break;
|
|
|
case NOTIFICATION_MOVED_IN_PARENT: {
|
|
|
if (!is_inside_tree()) {
|