From 2d8157fe945d80d6b743cc5e4d47857a7a5521ac Mon Sep 17 00:00:00 2001 From: =?utf8?q?Artur=20=C5=9Awigo=C5=84?= Date: Wed, 29 Dec 2021 09:24:26 +0100 Subject: [PATCH] [AT-SPI] Notify parent Accessible when ACCESSIBILITY_HIDDEN is set Change-Id: I61184a56b2529a2eba19fdf09676f606834f0fb7 --- .../utc-Dali-Accessibility-Accessible.cpp | 17 ++++++++++++----- .../internal/controls/control/control-data-impl.cpp | 7 +++++++ 2 files changed, 19 insertions(+), 5 deletions(-) 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; } -- 2.7.4