KeyboardFocusManager manager = KeyboardFocusManager::Get();
DALI_TEST_CHECK(manager);
- // Make history stack full
- for(int i = 0 ; i < 31 ; i ++)
- {
- Actor actor = Actor::New();
- actor.SetKeyboardFocusable(true);
- Stage::GetCurrent().Add(actor);
- manager.SetCurrentFocusActor(actor);
- }
-
// Create the first actor and add it to the stage
Actor first = Actor::New();
first.SetKeyboardFocusable(true);
second.SetKeyboardFocusable(true);
Stage::GetCurrent().Add(second);
- // Create the second actor and add it to the stage
+ // Create the third actor and add it to the stage
Actor third = Actor::New();
third.SetKeyboardFocusable(true);
Stage::GetCurrent().Add(third);
+ // Create the fourth actor and add it to the stage
+ Actor fourth = Actor::New();
+ fourth.SetKeyboardFocusable(true);
+ Stage::GetCurrent().Add(fourth);
+
// Check that the focus is set on the second actor
DALI_TEST_CHECK(manager.SetCurrentFocusActor(first) == true);
DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first);
DALI_TEST_CHECK(manager.SetCurrentFocusActor(third) == true);
DALI_TEST_CHECK(manager.GetCurrentFocusActor() == third);
+ // Check that the focus is set on the third actor
+ DALI_TEST_CHECK(manager.SetCurrentFocusActor(fourth) == true);
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor() == fourth);
+
// Move the focus backward
manager.MoveFocusBackward();
- // Check that it current focused actor is second actor
- DALI_TEST_CHECK(manager.GetCurrentFocusActor() == second);
-
- // Check that the focus is set on the third actor
- DALI_TEST_CHECK(manager.SetCurrentFocusActor(third) == true);
+ // Check that it current focused actor is third actor
DALI_TEST_CHECK(manager.GetCurrentFocusActor() == third);
// Remove the second actor on stage
second.Unparent();
+ // Reset the first actor
+ first.Unparent();
+ first.Reset();
+
// Move the focus backward
manager.MoveFocusBackward();
- // Check that it current focused actor is first actor
- DALI_TEST_CHECK(manager.GetCurrentFocusActor() == first);
+ // Check that it current focused actor is third actor
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor() == third);
+
+ // Make history stack full
+ for(int i = 0 ; i < 31 ; i ++)
+ {
+ Actor actor = Actor::New();
+ actor.SetKeyboardFocusable(true);
+ Stage::GetCurrent().Add(actor);
+ manager.SetCurrentFocusActor(actor);
+ }
+
+ for(int i = 0 ; i < 31 ; i ++)
+ {
+ manager.MoveFocusBackward();
+ }
+
+ // Check that it current focused actor is not second actor
+ DALI_TEST_CHECK(manager.GetCurrentFocusActor() != second);
END_TEST;
}