From 3ff7f1def424f0ea497f41f1ee5053291cbf722b Mon Sep 17 00:00:00 2001 From: "joogab.yun" Date: Wed, 20 Jul 2022 14:47:14 +0900 Subject: [PATCH] Revert "If the currently focused actor is hidden, it should lose focus. and If VISIBLE is false, the focus cannot be set" This reverts commit e3cb09bfd9a25de3fa35db1b2c3082bcb838d700. Change-Id: Ibe37b34b400239bd193f9dbe60cca077f50ad4e2 --- .../dali-toolkit/utc-Dali-KeyboardFocusManager.cpp | 49 ---------------------- .../focus-manager/keyboard-focus-manager-impl.cpp | 3 +- dali-toolkit/public-api/controls/control-impl.cpp | 17 +------- 3 files changed, 2 insertions(+), 67 deletions(-) diff --git a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp index ccab3e0..60e9eea 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-KeyboardFocusManager.cpp @@ -2260,55 +2260,6 @@ int UtcDaliKeyboardFocusManagerWithUserInteractionEnabled(void) END_TEST; } - -int UtcDaliKeyboardFocusManagerWithHide(void) -{ - ToolkitTestApplication application; - - tet_infoline(" UtcDaliKeyboardFocusManagerWithHide"); - - KeyboardFocusManager manager = KeyboardFocusManager::Get(); - DALI_TEST_CHECK(manager); - - // Create the first control and add it to the stage - Control first = Control::New(); - first.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); - application.GetScene().Add(first); - - // Create the second control and add it to the first control. - Control second = Control::New(); - second.SetProperty(Actor::Property::KEYBOARD_FOCUSABLE, true); - first.Add(second); - - - // flush the queue and render once - application.SendNotification(); - application.Render(); - - // Check that no actor is being focused yet. - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); - - // Check that the focus is set on the actor - DALI_TEST_CHECK(manager.SetCurrentFocusActor(first) == true); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first); - - // If the currently focused actor becomes VISIBLE false, it loses focus. - first.SetProperty(Actor::Property::VISIBLE, false); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); - - first.SetProperty(Actor::Property::VISIBLE, true); - // Check that the focus is set on the actor - DALI_TEST_CHECK(manager.SetCurrentFocusActor(second) == true); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == second); - - // If the currently focused actor becomes VISIBLE false, When the parent is hidden, the child also loses focus. - first.SetProperty(Actor::Property::VISIBLE, false); - DALI_TEST_CHECK(manager.GetCurrentFocusActor() == Actor()); - - - END_TEST; -} - int UtcDaliKeyboardFocusManagerFocusFinderRootActor(void) { ToolkitTestApplication application; diff --git a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp index 07dc86d..bcbddec 100644 --- a/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp +++ b/dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.cpp @@ -212,8 +212,7 @@ bool KeyboardFocusManager::DoSetCurrentFocusActor(Actor actor) if(actor && actor.GetProperty(Actor::Property::KEYBOARD_FOCUSABLE) && actor.GetProperty(DevelActor::Property::USER_INTERACTION_ENABLED) && - actor.GetProperty(Actor::Property::CONNECTED_TO_SCENE) && - actor.GetProperty(Actor::Property::VISIBLE)) + actor.GetProperty(Actor::Property::CONNECTED_TO_SCENE)) { // If the parent's KEYBOARD_FOCUSABLE_CHILDREN is false, it cannot have focus. Actor parent = actor.GetParent(); diff --git a/dali-toolkit/public-api/controls/control-impl.cpp b/dali-toolkit/public-api/controls/control-impl.cpp index 9b10ffd..60efa05 100644 --- a/dali-toolkit/public-api/controls/control-impl.cpp +++ b/dali-toolkit/public-api/controls/control-impl.cpp @@ -581,22 +581,7 @@ void Control::OnPropertySet(Property::Index index, const Property::Value& proper } case 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(); - } - } + GetAccessibleObject()->EmitVisible(Self().GetProperty(Actor::Property::VISIBLE)); break; } case DevelActor::Property::USER_INTERACTION_ENABLED: -- 2.7.4