X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fcontrol-impl.cpp;h=9b10ffd3b21fc3b84fc152d66c4df8ca1e5244a9;hp=14075780ccf012e8f30b06dbb8ed97fdf178ec61;hb=d19410c023c18c050ae226c72c6d79ebf9b0de80;hpb=0512ac82e2c23d8eada7840b5a72cdabe13a5f54 diff --git a/dali-toolkit/public-api/controls/control-impl.cpp b/dali-toolkit/public-api/controls/control-impl.cpp index 1407578..9b10ffd 100644 --- a/dali-toolkit/public-api/controls/control-impl.cpp +++ b/dali-toolkit/public-api/controls/control-impl.cpp @@ -345,6 +345,11 @@ bool Control::OnAccessibilityZoom() return false; // Accessibility zoom action is not handled by default } +DevelControl::ControlAccessible* Control::CreateAccessibleObject() +{ + return new DevelControl::ControlAccessible(Self()); +} + Actor Control::GetNextKeyboardFocusableActor(Actor currentFocusedActor, Toolkit::Control::KeyboardFocus::Direction direction, bool loopEnabled) { return Actor(); @@ -576,7 +581,31 @@ void Control::OnPropertySet(Property::Index index, const Property::Value& proper } case Actor::Property::VISIBLE: { - GetAccessibleObject()->EmitVisible(Self().GetProperty(Actor::Property::VISIBLE)); + const bool visible = propertyValue.Get(); + 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(); + if (!enabled && Self() == Dali::Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor()) + { + Dali::Toolkit::KeyboardFocusManager::Get().ClearFocus(); + } break; } }