}
case Actor::Property::VISIBLE:
{
- GetAccessibleObject()->EmitVisible(Self().GetProperty<bool>(Actor::Property::VISIBLE));
+ const bool visible = propertyValue.Get<bool>();
+ GetAccessibleObject()->EmitVisible(visible);
+ if(!visible)
+ {
+ Dali::Actor self = Self();
+ Dali::Actor actor = Dali::Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor();
+ while(actor)
+ {
+ if(self == actor)
+ {
+ Dali::Toolkit::KeyboardFocusManager::Get().ClearFocus();
+ break;
+ }
+ actor = actor.GetParent();
+ }
+ }
+ break;
+ }
+ case DevelActor::Property::USER_INTERACTION_ENABLED:
+ {
+ const bool enabled = propertyValue.Get<bool>();
+ if (!enabled && Self() == Dali::Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor())
+ {
+ Dali::Toolkit::KeyboardFocusManager::Get().ClearFocus();
+ }
break;
}
}