add patch
[framework/osp/uifw.git] / src / ui / FUi_AccessibilityManager.cpp
index 03e824b..8e27a38 100644 (file)
@@ -1305,7 +1305,7 @@ _AccessibilityManager::MakeList(void)
        {
                if (controlList.GetAt(i, pControl) == E_SUCCESS)
                {
-                       FloatRectangle rect = pControl->GetAbsoluteBoundsF();
+                       FloatRectangle rect = pControl->GetAbsoluteBoundsF(true);
                        if (rect.x + rect.width <= 0.0f || (rect.x) >= margin)
                        {
                                bool inside = false;
@@ -1421,7 +1421,7 @@ _AccessibilityManager::MakeList(void)
                        pControl = &(pPositionByControlListElement->GetParent()->GetOwner());
                        while (pControl)
                        {
-                               rect = pControl->GetAbsoluteBounds();
+                               rect = pControl->GetAbsoluteBounds(true);
                                if (rect.y >0)
                                {
                                        break;
@@ -1952,34 +1952,35 @@ _AccessibilityManager::ProcessGesture(_AccessibilityGestureType type, const Floa
                        _Window* pWindow = _ControlManager::GetInstance()->GetTopVisibleWindow();
                        if (!(pWindow->IsLayoutChangable()))
                        {
-                               Rectangle topWindowAbsBounds = pWindow->GetAbsoluteBounds();
+                               Rectangle topWindowAbsBounds = pWindow->GetAbsoluteBounds(true);
                                pt.x = pt.x + topWindowAbsBounds.x;
                                pt.y = pt.y + topWindowAbsBounds.y;
                        }
                        pControl = _ControlManager::GetInstance()->GetTopmostTouchedControl(pt);
-                       if (pControl == null || !(pControl->GetAbsoluteBounds().Contains(pt)))
+                       if (pControl == null || !(pControl->GetAbsoluteBounds(true).Contains(pt)))
                        {
                                return false;
                        }
                        _AccessibilityContainer* pAccContainer = pControl->GetAccessibilityContainer();
-                       while(!(pAccContainer->IsActivated()))
+                       _AccessibilityElement* pElement = null;
+                       while(pElement == null)
                        {
+                               pElement = pAccContainer->Hit(pt);
+                               if(pElement)
+                               {
+                                       break;
+                               }
                                _Control* _pControl = pAccContainer->GetOwner().GetParent();
                                if (_pControl == null)
                                {
                                        return false;
                                }
                                pAccContainer = _pControl->GetAccessibilityContainer();
-                               if (pAccContainer == null)
+                               if(pAccContainer == null)
                                {
                                        return false;
                                }
                        }
-                       _AccessibilityElement* pElement = pAccContainer->Hit(pt);
-                       if (pElement == null)
-                       {
-                               return false;
-                       }
 
                        if (__pTargetElement == pElement)
                        {