New propagation rule for KeyEvent
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / controls / control-impl.cpp
index 26e020a..fffbe69 100644 (file)
@@ -686,10 +686,10 @@ public:
     }
   }
 
     }
   }
 
-  Toolkit::Visual::Type GetVisualTypeFromMap( const Property::Map& map )
+  Toolkit::DevelVisual::Type GetVisualTypeFromMap( const Property::Map& map )
   {
   {
-    Property::Value* typeValue = map.Find( Toolkit::Visual::Property::TYPE, VISUAL_TYPE  );
-    Toolkit::Visual::Type type = Toolkit::Visual::IMAGE;
+    Property::Value* typeValue = map.Find( Toolkit::DevelVisual::Property::TYPE, VISUAL_TYPE  );
+    Toolkit::DevelVisual::Type type = Toolkit::DevelVisual::IMAGE;
     if( typeValue )
     {
       Scripting::GetEnumerationProperty( *typeValue, VISUAL_TYPE_TABLE, VISUAL_TYPE_TABLE_COUNT, type );
     if( typeValue )
     {
       Scripting::GetEnumerationProperty( *typeValue, VISUAL_TYPE_TABLE, VISUAL_TYPE_TABLE_COUNT, type );
@@ -721,8 +721,8 @@ public:
         Property::Map fromMap;
         visual.CreatePropertyMap( fromMap );
 
         Property::Map fromMap;
         visual.CreatePropertyMap( fromMap );
 
-        Toolkit::Visual::Type fromType = GetVisualTypeFromMap( fromMap );
-        Toolkit::Visual::Type toType = GetVisualTypeFromMap( toMap );
+        Toolkit::DevelVisual::Type fromType = GetVisualTypeFromMap( fromMap );
+        Toolkit::DevelVisual::Type toType = GetVisualTypeFromMap( toMap );
 
         if( fromType != toType )
         {
 
         if( fromType != toType )
         {
@@ -730,7 +730,8 @@ public:
         }
         else
         {
         }
         else
         {
-          if( fromType == Toolkit::Visual::IMAGE )
+          if( fromType == Toolkit::DevelVisual::IMAGE || fromType == Toolkit::DevelVisual::N_PATCH
+              || fromType == Toolkit::DevelVisual::SVG || fromType == Toolkit::DevelVisual::ANIMATED_IMAGE )
           {
             Property::Value* fromUrl = fromMap.Find( Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME );
             Property::Value* toUrl = toMap.Find( Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME );
           {
             Property::Value* fromUrl = fromMap.Find( Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME );
             Property::Value* toUrl = toMap.Find( Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME );
@@ -1141,7 +1142,11 @@ bool Control::HasKeyInputFocus()
   bool result = false;
   if( Self().OnStage() )
   {
   bool result = false;
   if( Self().OnStage() )
   {
-    result = Toolkit::KeyInputFocusManager::Get().IsKeyboardListener(Toolkit::Control::DownCast(Self()));
+    Toolkit::Control control = Toolkit::KeyInputFocusManager::Get().GetCurrentFocusControl();
+    if( Self() == control )
+    {
+      result = true;
+    }
   }
   return result;
 }
   }
   return result;
 }
@@ -1499,8 +1504,8 @@ void Control::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Ty
   if( styleManager && change == StyleChange::THEME_CHANGE )
   {
     GetImpl( styleManager ).ApplyThemeStyle( Toolkit::Control( GetOwner() ) );
   if( styleManager && change == StyleChange::THEME_CHANGE )
   {
     GetImpl( styleManager ).ApplyThemeStyle( Toolkit::Control( GetOwner() ) );
+    RelayoutRequest();
   }
   }
-  RelayoutRequest();
 }
 
 void Control::OnPinch(const PinchGesture& pinch)
 }
 
 void Control::OnPinch(const PinchGesture& pinch)