diff options
Diffstat (limited to 'scene/gui/control.cpp')
-rw-r--r-- | scene/gui/control.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index 6f5e2cf058..ec75fcb665 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -644,8 +644,10 @@ Rect2 Control::get_parent_anchorable_rect() const { parent_rect = data.parent_canvas_item->get_anchorable_rect(); } else { #ifdef TOOLS_ENABLED - Node *edited_root = get_tree()->get_edited_scene_root(); - if (edited_root && (this == edited_root || edited_root->is_ancestor_of(this))) { + Node *edited_scene_root = get_tree()->get_edited_scene_root(); + Node *scene_root_parent = edited_scene_root ? edited_scene_root->get_parent() : nullptr; + + if (scene_root_parent && get_viewport() == scene_root_parent->get_viewport()) { parent_rect.size = Size2(GLOBAL_GET("display/window/size/viewport_width"), GLOBAL_GET("display/window/size/viewport_height")); } else { parent_rect = get_viewport()->get_visible_rect(); @@ -692,7 +694,7 @@ Transform2D Control::get_transform() const { return xform; } -void Control::_toplevel_changed_on_parent() { +void Control::_top_level_changed_on_parent() { // Update root control status. _notification(NOTIFICATION_EXIT_CANVAS); _notification(NOTIFICATION_ENTER_CANVAS); @@ -3390,7 +3392,7 @@ void Control::_bind_methods() { ADD_SIGNAL(MethodInfo("minimum_size_changed")); ADD_SIGNAL(MethodInfo("theme_changed")); - GDVIRTUAL_BIND(_has_point, "position"); + GDVIRTUAL_BIND(_has_point, "point"); GDVIRTUAL_BIND(_structured_text_parser, "args", "text"); GDVIRTUAL_BIND(_get_minimum_size); |