From e5c50f4b7bc4279b23f9acd811f5636b18f0c266 Mon Sep 17 00:00:00 2001 From: kit Date: Sat, 21 Feb 2026 15:28:30 -0500 Subject: [PATCH] Fix SplitContainer accessibility errors --- scene/gui/split_container.cpp | 6 ++++++ tests/scene/test_split_container.cpp | 1 + 2 files changed, 7 insertions(+) diff --git a/scene/gui/split_container.cpp b/scene/gui/split_container.cpp index c9198604ba..9189fc975d 100644 --- a/scene/gui/split_container.cpp +++ b/scene/gui/split_container.cpp @@ -185,6 +185,9 @@ void SplitContainerDragger::update_touch_dragger() { void SplitContainerDragger::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ACCESSIBILITY_UPDATE: { + if (dragger_index < 0) { + return; + } RID ae = get_accessibility_element(); ERR_FAIL_COND(ae.is_null()); @@ -765,6 +768,9 @@ void SplitContainer::_resort() { } void SplitContainer::_update_draggers() { + if (!is_visible_in_tree()) { + return; + } const int valid_child_count = (int)valid_children.size(); const int dragger_count = MAX(valid_child_count - 1, 1); const int draggers_size_diff = dragger_count - (int)dragging_area_controls.size(); diff --git a/tests/scene/test_split_container.cpp b/tests/scene/test_split_container.cpp index b2eaa48911..fcc6da17a3 100644 --- a/tests/scene/test_split_container.cpp +++ b/tests/scene/test_split_container.cpp @@ -1788,6 +1788,7 @@ TEST_CASE("[SceneTree][SplitContainer] More children") { SUBCASE("[SplitContainer] Duplicate") { // Make sure dynamically added internal draggers duplicate properly. SplitContainer *duplicate = (SplitContainer *)(Node *)split_container->duplicate(); + SceneTree::get_singleton()->get_root()->add_child(duplicate); MessageQueue::get_singleton()->flush(); CHECK(duplicate->get_child_count(false) == split_container->get_child_count(false)); CHECK(duplicate->get_child_count(true) == split_container->get_child_count(true));