diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-11-28 08:21:10 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-11-28 08:21:10 +0100 |
commit | 438b2e2d02b2ce5f2dd53b9d3d6898746d4748ef (patch) | |
tree | 4d0fa69364d1469ae15b7b0f67b7b5a3ba7a9d9c /scene/2d | |
parent | c7c9aa8d8bd741f5d0aaca31780ab648f5614111 (diff) | |
parent | 022d24a9aef8aabd91dbef7fa6b01687748f78b6 (diff) |
Merge pull request #59801 from Sauermann/fix-node2d-viewport-root-order
Fix Viewport root order after Node2D raise
Diffstat (limited to 'scene/2d')
-rw-r--r-- | scene/2d/node_2d.cpp | 12 | ||||
-rw-r--r-- | scene/2d/node_2d.h | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/scene/2d/node_2d.cpp b/scene/2d/node_2d.cpp index 2518069b78..84bfc48a43 100644 --- a/scene/2d/node_2d.cpp +++ b/scene/2d/node_2d.cpp @@ -30,6 +30,8 @@ #include "node_2d.h" +#include "scene/main/viewport.h" + #ifdef TOOLS_ENABLED Dictionary Node2D::_edit_get_state() const { Dictionary state; @@ -389,6 +391,16 @@ bool Node2D::is_y_sort_enabled() const { return y_sort_enabled; } +void Node2D::_notification(int p_notification) { + switch (p_notification) { + case NOTIFICATION_MOVED_IN_PARENT: { + if (get_viewport()) { + get_viewport()->gui_set_root_order_dirty(); + } + } break; + } +} + void Node2D::_bind_methods() { ClassDB::bind_method(D_METHOD("set_position", "position"), &Node2D::set_position); ClassDB::bind_method(D_METHOD("set_rotation", "radians"), &Node2D::set_rotation); diff --git a/scene/2d/node_2d.h b/scene/2d/node_2d.h index 0d8a31e6bb..04bbdf639d 100644 --- a/scene/2d/node_2d.h +++ b/scene/2d/node_2d.h @@ -53,6 +53,7 @@ class Node2D : public CanvasItem { void _update_xform_values(); protected: + void _notification(int p_notification); static void _bind_methods(); public: |