Fix SplitContainer accessibility errors

This commit is contained in:
kit
2026-02-21 15:28:30 -05:00
parent a3e84cc2af
commit e5c50f4b7b
2 changed files with 7 additions and 0 deletions

View File

@@ -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();

View File

@@ -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));