From f7397a0feeb46fb8d2103a8a074a3fcc39547e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E9=9D=92=E5=B1=B1?= Date: Sat, 18 Jan 2025 17:33:58 +0800 Subject: [PATCH] Remove confusing `Control::is_top_level_control()` It's hard to tell at first glance under what circumstances `is_top_level_control()` returns `true`. So it's hard to decide when to use this method. And it seems to be just a helper function for `Control::get_root_parent_control()`. `is_top_level_control()` seems to only return `true` during entry and exit of canvas. --- scene/gui/control.cpp | 9 --------- scene/gui/control.h | 2 -- 2 files changed, 11 deletions(-) diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index c8318e1d9db..e46aadbcbf6 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -607,11 +607,6 @@ bool Control::_property_get_revert(const StringName &p_name, Variant &r_property // Global relations. -bool Control::is_top_level_control() const { - ERR_READ_THREAD_GUARD_V(false); - return is_inside_tree() && (!data.parent_canvas_item && !data.RI && is_set_as_top_level()); -} - Control *Control::get_parent_control() const { ERR_READ_THREAD_GUARD_V(nullptr); return data.parent_control; @@ -631,10 +626,6 @@ Control *Control::get_root_parent_control() const { const Control *c = Object::cast_to(ci); if (c) { root = c; - - if (c->data.RI || c->is_top_level_control()) { - break; - } } ci = ci->get_parent_item(); diff --git a/scene/gui/control.h b/scene/gui/control.h index 23190381f3f..7b8dd530966 100644 --- a/scene/gui/control.h +++ b/scene/gui/control.h @@ -428,8 +428,6 @@ public: // Global relations. - bool is_top_level_control() const; - Control *get_parent_control() const; Window *get_parent_window() const; Control *get_root_parent_control() const;