From 2676a40c6aa784628b20c42052bae09e66284b88 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Artur=20=C5=9Awigo=C5=84?= Date: Tue, 20 Apr 2021 20:26:44 +0200 Subject: [PATCH] [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 --- .../internal/controls/control/control-data-impl.cpp | 1 - dali-toolkit/public-api/controls/control-impl.cpp | 15 ++------------- 2 files changed, 2 insertions(+), 14 deletions(-) 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(); } -- 2.7.4