From 18f4c6f159bfa4c3e35f185753d5ceb05a2c65b6 Mon Sep 17 00:00:00 2001 From: HolonProduction Date: Tue, 30 Sep 2025 20:27:06 +0200 Subject: [PATCH] CanvasItem: Use cached viewport instead of searching the tree --- scene/main/canvas_item.cpp | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp index 5794dc8b1e..6452e03622 100644 --- a/scene/main/canvas_item.cpp +++ b/scene/main/canvas_item.cpp @@ -331,20 +331,7 @@ void CanvasItem::_notification(int p_what) { if (cl) { parent_visible_in_tree = cl->is_visible(); } else { - // Look for a window. - Viewport *viewport = nullptr; - - while (parent) { - viewport = Object::cast_to(parent); - if (viewport) { - break; - } - parent = parent->get_parent(); - } - - ERR_FAIL_NULL(viewport); - - window = Object::cast_to(viewport); + window = Object::cast_to(get_viewport()); if (window) { window->connect(SceneStringName(visibility_changed), callable_mp(this, &CanvasItem::_window_visibility_changed)); parent_visible_in_tree = window->is_visible();