diff options
-rw-r--r-- | core/object.cpp | 5 | ||||
-rw-r--r-- | scene/gui/container.cpp | 8 | ||||
-rw-r--r-- | scene/gui/container.h | 1 |
3 files changed, 13 insertions, 1 deletions
diff --git a/core/object.cpp b/core/object.cpp index 07ac430d7a..3a4c06e7e7 100644 --- a/core/object.cpp +++ b/core/object.cpp @@ -970,7 +970,10 @@ void Object::set_script_instance(ScriptInstance *p_instance) { script_instance=p_instance; - script=p_instance->get_script().get_ref_ptr(); + if (p_instance) + script=p_instance->get_script().get_ref_ptr(); + else + script=RefPtr(); } RefPtr Object::get_script() const { diff --git a/scene/gui/container.cpp b/scene/gui/container.cpp index 6c74bc3977..8cdf4dd039 100644 --- a/scene/gui/container.cpp +++ b/scene/gui/container.cpp @@ -52,6 +52,14 @@ void Container::add_child_notify(Node *p_child) { } +void Container::move_child_notify(Node *p_child) { + + if (!p_child->cast_to<Control>()) + return; + + queue_sort(); +} + void Container::remove_child_notify(Node *p_child) { diff --git a/scene/gui/container.h b/scene/gui/container.h index ba9bf2d60f..04d5d6ab36 100644 --- a/scene/gui/container.h +++ b/scene/gui/container.h @@ -42,6 +42,7 @@ protected: void queue_sort(); virtual void add_child_notify(Node *p_child); + virtual void move_child_notify(Node *p_child); virtual void remove_child_notify(Node *p_child); void _notification(int p_what); |