From: Artur Świgoń Date: Wed, 29 Dec 2021 08:24:26 +0000 (+0100) Subject: [AT-SPI] Notify parent Accessible when ACCESSIBILITY_HIDDEN is set X-Git-Tag: dali_2.1.7~12^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=2d8157fe945d80d6b743cc5e4d47857a7a5521ac;ds=sidebyside [AT-SPI] Notify parent Accessible when ACCESSIBILITY_HIDDEN is set Change-Id: I61184a56b2529a2eba19fdf09676f606834f0fb7 --- diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Accessible.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Accessible.cpp index 643b552..2bbdcc8 100644 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Accessible.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Accessible.cpp @@ -148,19 +148,26 @@ int utcDaliAccessibilityHidden(void) { ToolkitTestApplication application; - auto control = Toolkit::Control::New(); - auto* accessible = Dali::Accessibility::Accessible::Get(control); + auto parent = Toolkit::Control::New(); + auto* parentAccessible = Accessibility::Accessible::Get(parent); + auto control = Toolkit::Control::New(); + auto* controlAccessible = Accessibility::Accessible::Get(control); + + parent.Add(control); // Check not hidden - DALI_TEST_CHECK(accessible); - DALI_TEST_CHECK(!accessible->IsHidden()); + DALI_TEST_CHECK(parentAccessible && controlAccessible); + DALI_TEST_CHECK(!controlAccessible->IsHidden()); DALI_TEST_CHECK(!control.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIDDEN)); + DALI_TEST_EQUALS(parentAccessible->GetChildCount(), 1u, TEST_LOCATION); + DALI_TEST_EQUALS(parentAccessible->GetChildAtIndex(0), controlAccessible, TEST_LOCATION); control.SetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIDDEN, true); // Check hidden - DALI_TEST_CHECK(accessible->IsHidden()); + DALI_TEST_CHECK(controlAccessible->IsHidden()); DALI_TEST_CHECK(control.GetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIDDEN)); + DALI_TEST_EQUALS(parentAccessible->GetChildCount(), 0u, TEST_LOCATION); END_TEST; } diff --git a/dali-toolkit/internal/controls/control/control-data-impl.cpp b/dali-toolkit/internal/controls/control/control-data-impl.cpp index e3cea92..bfe280a 100644 --- a/dali-toolkit/internal/controls/control/control-data-impl.cpp +++ b/dali-toolkit/internal/controls/control/control-data-impl.cpp @@ -1377,6 +1377,13 @@ void Control::Impl::SetProperty(BaseObject* object, Property::Index index, const if(value.Get(hidden)) { controlImpl.mImpl->mAccessibilityHidden = hidden; + + auto* accessible = controlImpl.mImpl->GetAccessibilityObject(); + auto* parent = dynamic_cast(accessible->GetParent()); + if (parent) + { + parent->OnChildrenChanged(); + } } break; }