Merge pull request #116601 from kitbdev/fix-sc-accessibility-errors

Fix SplitContainer accessibility errors
This commit is contained in:
Thaddeus Crews 2026-02-23 11:59:11 -06:00
commit 93a59728fb
No known key found for this signature in database
GPG key ID: 8C6E5FEB5FC03CCC
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));