summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/object.cpp5
-rw-r--r--scene/gui/container.cpp8
-rw-r--r--scene/gui/container.h1
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);