From 9fb0b52608ef01420a48bf92d77ce8a3da042ccc Mon Sep 17 00:00:00 2001 From: Mikael Hermansson Date: Mon, 13 Nov 2023 15:44:32 +0100 Subject: [PATCH] Fix transform notification not getting sent out for RigidBody2D --- scene/main/canvas_item.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp index 4ee81e5cb09..d2735b968b1 100644 --- a/scene/main/canvas_item.cpp +++ b/scene/main/canvas_item.cpp @@ -891,22 +891,18 @@ void CanvasItem::_notify_transform(CanvasItem *p_node) { * notification anyway). */ - if (/*p_node->xform_change.in_list() &&*/ p_node->_is_global_invalid()) { + if (p_node->block_transform_notify || p_node->_is_global_invalid()) { return; //nothing to do } p_node->_set_global_invalid(true); - if (p_node->notify_transform && !p_node->xform_change.in_list()) { - if (!p_node->block_transform_notify) { - if (p_node->is_inside_tree()) { - if (is_accessible_from_caller_thread()) { - get_tree()->xform_change_list.add(&p_node->xform_change); - } else { - // Should be rare, but still needs to be handled. - MessageQueue::get_singleton()->push_callable(callable_mp(p_node, &CanvasItem::_notify_transform_deferred)); - } - } + if (p_node->notify_transform && !p_node->xform_change.in_list() && p_node->is_inside_tree()) { + if (is_accessible_from_caller_thread()) { + get_tree()->xform_change_list.add(&p_node->xform_change); + } else { + // Should be rare, but still needs to be handled. + MessageQueue::get_singleton()->push_callable(callable_mp(p_node, &CanvasItem::_notify_transform_deferred)); } }