From d165d8d6936dfe8746d720dd82ee1b033ce3e4c8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Artur=20=C5=9Awigo=C5=84?= Date: Fri, 29 Apr 2022 19:12:36 +0200 Subject: [PATCH] [AT-SPI] Call EmbedAtkSocket() from WebViewAccessible This is necessary for the ATK-based AT-SPI subtree of the web content to know the address of its parent. Change-Id: I98ad98bc5d016df9a827d733451a4ceda5b429c3 --- .../dali-toolkit-test-utils/accessibility-test-utils.cpp | 6 ++++++ dali-toolkit/internal/controls/web-view/web-view-impl.cpp | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/accessibility-test-utils.cpp b/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/accessibility-test-utils.cpp index 843a26c..c6499b0 100644 --- a/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/accessibility-test-utils.cpp +++ b/automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/accessibility-test-utils.cpp @@ -52,6 +52,12 @@ namespace Accessibility wr->Encode(reply, std::tuple
{ {"bus", "root"} }); return reply; }; + wr->testMethods[std::tuple{"/org/a11y/atspi/accessible/root", "org.a11y.atspi.Socket", "Unembed", MethodType::Method}] = [wr](const MessagePtr &m) -> MessagePtr { + return wr->newReplyMessage(m); + }; + wr->testMethods[std::tuple{"/org/a11y/atspi/accessible/root", "org.a11y.atspi.Socket", "Embedded", MethodType::Method}] = [wr](const MessagePtr &m) -> MessagePtr { + return wr->newReplyMessage(m); + }; wr->testMethods[std::tuple{"/org/a11y/atspi/accessible", "org.a11y.atspi.Event.Object", "PropertyChange", MethodType::Method}] = [wr](const MessagePtr &m) -> MessagePtr { return wr->newReplyMessage(m); diff --git a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp index e3f2406..09bea45 100755 --- a/dali-toolkit/internal/controls/web-view/web-view-impl.cpp +++ b/dali-toolkit/internal/controls/web-view/web-view-impl.cpp @@ -1293,8 +1293,13 @@ void WebView::WebViewAccessible::OnAccessibilityDisabled() void WebView::WebViewAccessible::SetRemoteChildAddress(Dali::Accessibility::Address address) { - mRemoteChild.SetAddress(std::move(address)); + mRemoteChild.SetAddress(address); OnChildrenChanged(); + + if(address) + { + Accessibility::Bridge::GetCurrentBridge()->EmbedAtkSocket(GetAddress(), address); + } } #undef GET_ENUM_STRING -- 2.7.4