[ATSPI] make accessible-nui use DALi states 77/266577/4
authorShinwoo Kim <cinoo.kim@samsung.com>
Mon, 15 Nov 2021 11:10:41 +0000 (20:10 +0900)
committerShinwoo Kim <cinoo.kim@samsung.com>
Tue, 16 Nov 2021 08:01:46 +0000 (17:01 +0900)
We do not have to calculate states sepalately.
This patch makes NUI calculate states using DALi states.
If there is NUI specific state, it will be overwritten on NUI side.

This depends on following change.
https://github.com/Samsung/TizenFX/pull/3739

Change-Id: I9d2b7153e23a693f11f028e1171ba4008b93d12a

dali-csharp-binder/src/accessible-impl-nui.cpp

index 7bbc3ea..2da0ba8 100644 (file)
@@ -30,7 +30,7 @@ struct AccessibilityDelegate
     char *(*getName)(); // 1
     char *(*getDescription)(); // 2
     bool (*doAction)(const char *); // 3
-    Dali::Accessibility::States *(*calculateStates)(); // 4
+    Dali::Accessibility::States *(*calculateStates)(uint64_t states); // 4
     int (*getActionCount)(); // 5
     char *(*getActionName)(int); // 6
     bool (*shouldReportZeroChildren)(); // 7
@@ -190,10 +190,14 @@ struct AccessibleImpl_NUI : public AccessibleImpl
     Dali::Accessibility::States CalculateStates() override
     {
         Dali::Accessibility::States ret{};
+        auto states = AccessibleImpl::CalculateStates();
 
+        uint64_t baseStates = states.GetRawData()[0];
+        uint64_t high = states.GetRawData()[1];
+        baseStates |= (high << 32);
         if (table->calculateStates)
         {
-            ret = stealObject(table->calculateStates());
+            ret = stealObject(table->calculateStates(baseStates));
         }
 
         return ret;