diff options
-rw-r--r-- | core/bind/core_bind.cpp | 7 | ||||
-rw-r--r-- | scene/2d/visibility_notifier_2d.cpp | 6 |
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); |