summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/bind/core_bind.cpp7
-rw-r--r--scene/2d/visibility_notifier_2d.cpp6
2 files changed, 13 insertions, 0 deletions
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index 3e2f8ff263..4e815d044d 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -1936,6 +1936,13 @@ Error _Directory::make_dir(String p_dir){
Error _Directory::make_dir_recursive(String p_dir){
ERR_FAIL_COND_V(!d,ERR_UNCONFIGURED);
+ if (!p_dir.is_rel_path()) {
+ DirAccess *d = DirAccess::create_for_path(p_dir);
+ Error err = d->make_dir_recursive(p_dir);
+ memdelete(d);
+ return err;
+
+ }
return d->make_dir_recursive(p_dir);
}
diff --git a/scene/2d/visibility_notifier_2d.cpp b/scene/2d/visibility_notifier_2d.cpp
index 5411950976..852bc187d2 100644
--- a/scene/2d/visibility_notifier_2d.cpp
+++ b/scene/2d/visibility_notifier_2d.cpp
@@ -40,6 +40,9 @@ void VisibilityNotifier2D::_enter_viewport(Viewport* p_viewport) {
ERR_FAIL_COND(viewports.has(p_viewport));
viewports.insert(p_viewport);
+ if (is_inside_tree() && get_tree()->is_editor_hint())
+ return;
+
if (viewports.size()==1) {
emit_signal(SceneStringNames::get_singleton()->enter_screen);
@@ -54,6 +57,9 @@ void VisibilityNotifier2D::_exit_viewport(Viewport* p_viewport){
ERR_FAIL_COND(!viewports.has(p_viewport));
viewports.erase(p_viewport);
+ if (is_inside_tree() && get_tree()->is_editor_hint())
+ return;
+
emit_signal(SceneStringNames::get_singleton()->exit_viewport,p_viewport);
if (viewports.size()==0) {
emit_signal(SceneStringNames::get_singleton()->exit_screen);