A screen reader bug was fixed.
authorBumseung Cho <bumseung.cho@samsung.com>
Wed, 3 Jul 2013 06:34:54 +0000 (15:34 +0900)
committerBumseung Cho <bumseung.cho@samsung.com>
Wed, 3 Jul 2013 06:34:54 +0000 (15:34 +0900)
Change-Id: Ie17fba62d7ac032543ca02be82de6661ded8d219
Signed-off-by: Bumseung Cho <bumseung.cho@samsung.com>
src/ui/FUiAccessibilityContainer.cpp
src/ui/FUi_AccessibilityElement.cpp
src/ui/FUi_AccessibilityManager.cpp

index 21ef355..db41fdc 100644 (file)
@@ -80,7 +80,7 @@ AccessibilityContainer::GetElement(const String& name) const
        SysAssertf(__pAccessibilityContainerImpl != null, "Not constructed properly by platform.");
        ClearLastResult();
        AccessibilityElement* pElement = __pAccessibilityContainerImpl->GetChildElement(name);
-       SysTryReturn(NID_UI, pElement, null, E_SYSTEM, "[E_SYSTEM] Getting a child by name is failed..");
+       SysTryReturn(NID_UI, pElement, null, E_SYSTEM, "[E_SYSTEM] Getting a child by name is failed.. name : %ls", name.GetPointer());
        return pElement;
 }
 
index 83851f7..eb0bcab 100644 (file)
@@ -118,6 +118,10 @@ _AccessibilityElement::~_AccessibilityElement(void)
        __pStatusId = null;
        delete [] __pValueId;
        __pValueId = null;
+       if (__pParent && this == __pParent->GetCurrentFocusedElement())
+       {
+               _AccessibilityManager::GetInstance()->RequestAutoReading(_ACCESSIBILITY_AUTO_READING_MODE_FIRST_ITEM);
+       }
 }
 result
 _AccessibilityElement::Construct(const String& name, const FloatRectangle& bounds)
index 015550b..317814b 100644 (file)
@@ -1226,6 +1226,10 @@ _AccessibilityManager::RemoveContainer(const _AccessibilityContainer& container)
        }
        if (__pTargetContainer == &container)
        {
+               if(__pTargetContainer)
+               {
+                       __pTargetContainer->SetCurrentFocusedElement(null);
+               }
                __pTargetContainer = null;
                __pTargetElement = null;
        }
@@ -1636,7 +1640,12 @@ _AccessibilityManager::MoveFocus(_AccessibilityFocusDirection direction)
                {
                        pElement = null;
                        __pTargetElement = null;
+                       if(__pTargetContainer)
+                       {
+                               __pTargetContainer->SetCurrentFocusedElement(null);
+                       }
                        __pTargetContainer = null;
+                       
                }
                else
                {
@@ -1774,7 +1783,7 @@ _AccessibilityManager::MoveFocus(_AccessibilityFocusDirection direction)
 void
 _AccessibilityManager::RequestToDrawFocusUi()
 {
-       if (__pTargetContainer)
+       if (__targetControlHandle.IsValid())
        {
                //HidePopup();
                DrawFocusUi(*__pTargetElement);
@@ -2339,6 +2348,10 @@ _AccessibilityManager::OnAccessibilityScreenReaderIsActivated(bool set)
                {
                        __pTtsPlayer->Deactivate();
                        EraseFocusUi();
+                       if(__pTargetContainer)
+                       {
+                               __pTargetContainer->SetCurrentFocusedElement(null);
+                       }
                        __pTargetContainer = null;
                        __pTargetElement = null;
                        __pTitleElement = null;
@@ -2455,7 +2468,10 @@ void
 _AccessibilityManager::ResetFocusInformation(void)
 {
        EraseFocusUi();
-
+       if(__pTargetContainer)
+       {
+               __pTargetContainer->SetCurrentFocusedElement(null);
+       }
        __pTargetContainer = null;
        __pTargetElement = null;
        __pTitleElement = null;