From: Artur Świgoń Date: Tue, 20 Apr 2021 18:26:44 +0000 (+0200) Subject: [AT-SPI] Call Control::Impl::AccessibilityRegister() unconditionally X-Git-Tag: dali_2.0.26~3^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=2676a40c6aa784628b20c42052bae09e66284b88 [AT-SPI] Call Control::Impl::AccessibilityRegister() unconditionally This patch fixes a bug where the screen reader is not notified about changes of size / position / visibility of controls if accessibility is enabled in runtime, i.e. after the controls are connected to the scene. Please note that the callbacks registered with AccessibilityRegister() already check Accessibility::IsUp(), therefore non-accessibility usage scenarios are not affected by this patch. Change-Id: Icc49b0a12a75135ca3d2033b342878b4ab1392bb --- diff --git a/dali-toolkit/internal/controls/control/control-data-impl.cpp b/dali-toolkit/internal/controls/control/control-data-impl.cpp index 4e2a1c6..9e69f95 100644 --- a/dali-toolkit/internal/controls/control/control-data-impl.cpp +++ b/dali-toolkit/internal/controls/control/control-data-impl.cpp @@ -487,7 +487,6 @@ Control::Impl::~Impl() StopObservingVisual(iter->visual); } - AccessibilityDeregister(false); // All gesture detectors will be destroyed so no need to disconnect. delete mStartingPinchScale; diff --git a/dali-toolkit/public-api/controls/control-impl.cpp b/dali-toolkit/public-api/controls/control-impl.cpp index 8a4b9c8..781b531 100644 --- a/dali-toolkit/public-api/controls/control-impl.cpp +++ b/dali-toolkit/public-api/controls/control-impl.cpp @@ -494,9 +494,6 @@ void Control::Initialize() auto typeName = type.GetName(); DevelControl::AppendAccessibilityAttribute(Self(), "class", typeName); } - - if(Accessibility::IsUp()) - mImpl->AccessibilityRegister(); } void Control::OnInitialize() @@ -593,20 +590,12 @@ void Control::OnSceneConnection(int depth) // The clipping renderer is only created if required. CreateClippingRenderer(*this); - // Request to be laid out when the control is connected to the Scene. - // Signal that a Relayout may be needed - if(Accessibility::IsUp()) - { - mImpl->AccessibilityRegister(); - } + mImpl->AccessibilityRegister(); } void Control::OnSceneDisconnection() { - if(Accessibility::IsUp()) - { - mImpl->AccessibilityDeregister(true); - } + mImpl->AccessibilityDeregister(true); mImpl->OnSceneDisconnection(); }