[AT-SPI] Add child_bus attribute to parents having remote accessibility object child 29/285629/3 accepted/tizen/unified/20221221.165248 accepted/tizen/unified/20221228.165952
authorLukasz Oleksak <l.oleksak@samsung.com>
Thu, 15 Dec 2022 15:09:48 +0000 (16:09 +0100)
committerLukasz Oleksak <l.oleksak@samsung.com>
Fri, 16 Dec 2022 10:27:06 +0000 (10:27 +0000)
This will allow AT-clients to query in a single dbus call (via collection iface) all busses used for UI embedding.
Result of such query may be used by AT-client to limit its dbus calls to:

a) active window process
b) processes that provide UIs embedded in active window

and avoid dbus calls to processes being in background, which respond very slowly.

Change-Id: Id684259fa6cd9ad0393f40440eb103dd2ba4b7ff

widget_viewer_dali/internal/widget_view/widget_view_impl.cpp
widget_viewer_dali/internal/widget_view/widget_view_impl.h

index 8ce7e9141d18ad7bc3f87a6adb4feba6aa4f1b62..249a9348b2f5a51a67a78a19eb4b0262d06c95c4 100644 (file)
@@ -1945,6 +1945,18 @@ void WidgetView::WidgetViewAccessible::DoGetChildren(std::vector<Dali::Accessibi
   }
 }
 
+Dali::Accessibility::Attributes WidgetView::WidgetViewAccessible::GetAttributes() const
+{
+  auto attributes = Dali::Toolkit::DevelControl::ControlAccessible::GetAttributes();
+
+  if(mRemoteChild.GetAddress())
+  {
+    attributes.insert_or_assign("child_bus", mRemoteChild.GetAddress().GetBus());
+  }
+
+  return attributes;
+}
+
 } // namespace Internal
 
 } // namespace WidgetView
index 82c54649867a524d9087eff381ab4f88cd9851c3..3dba52bf6aed326a4c0c4d9934c5a8b5d74b47dc 100644 (file)
@@ -500,6 +500,11 @@ protected:
      */
     void DoGetChildren(std::vector<Dali::Accessibility::Accessible*>& children) override;
 
+    /**
+     * @copydoc Dali::Accessibility::Accessible::GetAttributes()
+     */
+    Dali::Accessibility::Attributes GetAttributes() const override;
+
   private:
     Dali::Accessibility::ProxyAccessible mRemoteChild;
   };