Associate DefaultLabel with actor 55/319155/2
authorYoungsun Suh <youngsun.suh@samsung.com>
Wed, 16 Oct 2024 07:46:03 +0000 (16:46 +0900)
committerYoungsun Suh <youngsun.suh@samsung.com>
Mon, 11 Nov 2024 01:32:38 +0000 (10:32 +0900)
Change-Id: I788b743b719555f30a82d943764b134b3924024c

dali-csharp-binder/common/nui-view-accessible.cpp
dali-csharp-binder/dali-toolkit/control-devel-wrap.cpp

index 1385e4703cc98d43697f2b5a3b6a40f62798946d..3560ad4c9191f2b04fe0f8e89f4a7c1dfb3972f6 100644 (file)
@@ -745,18 +745,18 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_DetachAccessibleObject(Dal
       // Call detach only if accessible was created before.
       if(DevelControl::IsAccessibleCreated(control))
       {
-        auto actorAccessible = Dali::Accessibility::Accessible::GetOwningPtr(control);
-        auto viewAccessible  = std::dynamic_pointer_cast<NUIViewAccessible>(actorAccessible);
+        auto actorAccessible = Dali::Accessibility::Accessible::Get(control);
+        auto viewAccessible  = dynamic_cast<NUIViewAccessible*>(actorAccessible);
 
         if(viewAccessible)
         {
           viewAccessible->Detach();
-
-          // In case someone forgot View.UnregisterDefaultLabel() before View.Dispose()...
-          Dali::Accessibility::Bridge::GetCurrentBridge()->UnregisterDefaultLabel(viewAccessible);
         }
       }
 
+      // In case someone forgot View.UnregisterDefaultLabel() before View.Dispose()...
+      Dali::Accessibility::Bridge::GetCurrentBridge()->UnregisterDefaultLabel(control);
+
       // Make that we will not create new NUIViewAccessible anymore.
       DevelControl::EnableCreateAccessible(control, false);
     }
index 0cb578ce68343e7841dcf91a8e760a5a24c605ef..e44ee4a26eed55ec777eaf6a8e319de183994233 100644 (file)
@@ -503,16 +503,8 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_Bridge_RegisterDefaultLabe
   GUARD_ON_NULL_RET(arg1_actor);
   try_catch(([&]() {
     Dali::Actor* actor      = (Dali::Actor*)arg1_actor;
-    auto         accessible = Dali::Accessibility::Accessible::GetOwningPtr(*actor);
     auto         bridge     = Dali::Accessibility::Bridge::GetCurrentBridge();
-
-    if(!accessible)
-    {
-      SWIG_CSharpException(SWIG_RuntimeError, "No accessible object bind with actor.");
-      return;
-    }
-
-    bridge->RegisterDefaultLabel(accessible);
+    bridge->RegisterDefaultLabel(*actor);
   }));
 }
 
@@ -521,16 +513,8 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_Accessibility_Bridge_UnregisterDefaultLa
   GUARD_ON_NULL_RET(arg1_actor);
   try_catch(([&]() {
     Dali::Actor* actor      = (Dali::Actor*)arg1_actor;
-    auto         accessible = Dali::Accessibility::Accessible::GetOwningPtr(*actor);
     auto         bridge     = Dali::Accessibility::Bridge::GetCurrentBridge();
-
-    if(!accessible)
-    {
-      SWIG_CSharpException(SWIG_RuntimeError, "No accessible object bind with actor.");
-      return;
-    }
-
-    bridge->UnregisterDefaultLabel(accessible);
+    bridge->UnregisterDefaultLabel(*actor);
   }));
 }