[dali_2.3.22] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / focus-manager / focus-finder.cpp
index d338e39..c007888 100644 (file)
@@ -152,9 +152,9 @@ static int MinorAxisDistance(Dali::Toolkit::Control::KeyboardFocus::Direction di
  * @param minorAxisDistance The minorAxisDistance\r
  * @return The distance\r
  */\r
-static int GetWeightedDistanceFor(int majorAxisDistance, int minorAxisDistance)\r
+static uint64_t GetWeightedDistanceFor(int majorAxisDistance, int minorAxisDistance)\r
 {\r
-  return 13 * majorAxisDistance * majorAxisDistance + minorAxisDistance * minorAxisDistance;\r
+  return 13 * static_cast<int64_t>(majorAxisDistance) * static_cast<int64_t>(majorAxisDistance) + static_cast<int64_t>(minorAxisDistance) * static_cast<int64_t>(minorAxisDistance);\r
 }\r
 \r
 /**\r
@@ -343,6 +343,7 @@ bool IsBetterCandidate(Toolkit::Control::KeyboardFocus::Direction direction, Rec
 bool IsFocusable(Actor& actor)\r
 {\r
   return (actor.GetProperty<bool>(Actor::Property::KEYBOARD_FOCUSABLE) &&\r
+          actor.GetProperty<bool>(DevelActor::Property::USER_INTERACTION_ENABLED) &&\r
           actor.GetProperty<bool>(Actor::Property::VISIBLE) &&\r
           actor.GetProperty<Vector4>(Actor::Property::WORLD_COLOR).a > FULLY_TRANSPARENT);\r
 }\r
@@ -359,7 +360,7 @@ Actor FindNextFocus(Actor& actor, Actor& focusedActor, Rect<float>& focusedRect,
       Dali::Actor child = actor.GetChildAt(i-1);\r
       if(child && child != focusedActor && IsFocusable(child))\r
       {\r
-        Rect<float> candidateRect = DevelActor::CalculateScreenExtents(child);\r
+        Rect<float> candidateRect = DevelActor::CalculateCurrentScreenExtents(child);\r
 \r
         // convert x, y, width, height -> left, right, bottom, top\r
         ConvertCoordinate(candidateRect);\r
@@ -394,12 +395,12 @@ Actor GetNearestFocusableActor(Actor rootActor, Actor focusedActor, Toolkit::Con
   if (!focusedActor)\r
   {\r
     // If there is no currently focused actor, it is searched based on the upper left corner of the current window.\r
-    Rect<float> rootRect = DevelActor::CalculateScreenExtents(rootActor);\r
+    Rect<float> rootRect = DevelActor::CalculateCurrentScreenExtents(rootActor);\r
     focusedRect = Rect<float>(rootRect.x, rootRect.y, 0.f, 0.f);\r
   }\r
   else\r
   {\r
-    focusedRect = DevelActor::CalculateScreenExtents(focusedActor);\r
+    focusedRect = DevelActor::CalculateCurrentScreenExtents(focusedActor);\r
   }\r
 \r
 \r