|
|
|
@ -2,13 +2,11 @@
|
|
|
|
|
|
|
|
|
|
EFL_START_TEST(focus_unregister_twice)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Object *r1 = efl_add_ref(FOCUS_TEST_CLASS, NULL);
|
|
|
|
|
Efl_Ui_Focus_Object *r2 = efl_add_ref(FOCUS_TEST_CLASS, NULL);
|
|
|
|
|
Efl_Ui_Focus_Object *r1, *r2;
|
|
|
|
|
|
|
|
|
|
Efl_Ui_Focus_Manager *m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, r1)
|
|
|
|
|
);
|
|
|
|
|
Efl_Ui_Focus_Manager *m = focus_test_manager_new(&r1, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
r2 = efl_add_ref(FOCUS_TEST_CLASS, NULL);
|
|
|
|
|
fail_if(!efl_ui_focus_manager_calc_register(m, r2, r1, NULL));
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_unregister(m, r1);
|
|
|
|
@ -16,7 +14,6 @@ EFL_START_TEST(focus_unregister_twice)
|
|
|
|
|
efl_ui_focus_manager_calc_unregister(m, r1);
|
|
|
|
|
|
|
|
|
|
efl_unref(r2);
|
|
|
|
|
efl_unref(r1);
|
|
|
|
|
efl_unref(m);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@ -24,20 +21,22 @@ EFL_END_TEST
|
|
|
|
|
|
|
|
|
|
EFL_START_TEST(focus_register_twice)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Object *r1 = focus_test_object_new("r1", 0, 0, 10, 10);
|
|
|
|
|
Efl_Ui_Focus_Object *r2 = focus_test_object_new("r2", 0, 10, 10, 10);
|
|
|
|
|
Efl_Ui_Focus_Object *r1, *r2, *r3;
|
|
|
|
|
|
|
|
|
|
Efl_Ui_Focus_Manager *m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, r1)
|
|
|
|
|
);
|
|
|
|
|
Efl_Ui_Focus_Manager *m = focus_test_manager_new(&r1, EINA_TRUE);
|
|
|
|
|
Efl_Ui_Focus_Manager *m2 = focus_test_manager_new(&r3, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
r2 = efl_add_ref(FOCUS_TEST_CLASS, NULL);
|
|
|
|
|
|
|
|
|
|
fail_if(!efl_ui_focus_manager_calc_register(m, r2, r1, NULL));
|
|
|
|
|
//same confguration don't error out
|
|
|
|
|
fail_if(!efl_ui_focus_manager_calc_register(m, r2, r1, NULL));
|
|
|
|
|
//different confidurations error out
|
|
|
|
|
fail_if(efl_ui_focus_manager_calc_register(m, r2, r1, r1));
|
|
|
|
|
|
|
|
|
|
efl_unref(r1);
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
//different confidurations error out
|
|
|
|
|
fail_if(efl_ui_focus_manager_calc_register(m, r2, r1, m2));
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
|
|
|
|
|
efl_unref(m);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@ -50,7 +49,7 @@ EFL_START_TEST(pos_check)
|
|
|
|
|
|
|
|
|
|
focus_test_setup_cross(&middle, &south, &north, &east, &west);
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, middle, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, north, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, south, root, NULL);
|
|
|
|
@ -122,7 +121,7 @@ EFL_START_TEST(pos_check2)
|
|
|
|
|
south_east = focus_test_object_new("south_east", 60, 60, 5, 5);
|
|
|
|
|
south_west = focus_test_object_new("south_west", 20, 60, 5, 5);
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, middle, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, north_east, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, north_west, root, NULL);
|
|
|
|
@ -156,18 +155,12 @@ EFL_START_TEST(pos_check2)
|
|
|
|
|
EFL_END_TEST
|
|
|
|
|
EFL_START_TEST(redirect)
|
|
|
|
|
{
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 0, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(root2, 0, 0, 20, 20);
|
|
|
|
|
Efl_Ui_Focus_Object *root, *root2;
|
|
|
|
|
TEST_OBJ_NEW(one, 0, 0, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(two, 20, 0, 20, 20);
|
|
|
|
|
|
|
|
|
|
Efl_Ui_Focus_Manager *m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
Efl_Ui_Focus_Manager *m2 = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root2)
|
|
|
|
|
);
|
|
|
|
|
Efl_Ui_Focus_Manager *m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
Efl_Ui_Focus_Manager *m2 = focus_test_manager_new(&root2, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_register(m2, one, root2, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m2, two, root2, NULL);
|
|
|
|
@ -192,7 +185,7 @@ EFL_START_TEST(border_check)
|
|
|
|
|
|
|
|
|
|
focus_test_setup_cross(&middle, &south, &north, &east, &west);
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, middle, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, south, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, north, root, NULL);
|
|
|
|
@ -226,7 +219,7 @@ EFL_START_TEST(logical_chain)
|
|
|
|
|
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 0, 20, 20);
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&lroot);
|
|
|
|
|
m = focus_test_manager_new(&lroot, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
fail_if(!m);
|
|
|
|
|
|
|
|
|
@ -326,32 +319,31 @@ _check_chain(Efl_Ui_Focus_Manager *m, Efl_Ui_Focus_Object *objects[])
|
|
|
|
|
EFL_START_TEST(logical_chain_multi_redirect)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m, *m2, *m3, *m4;
|
|
|
|
|
Efl_Ui_Focus_Object *root,*root2, *root3, *root4, *c1_1, *c1_2, *c1_3, *c2, *c3, *c4;
|
|
|
|
|
Efl_Ui_Focus_Object *root,*root2, *root3, *root4, *c2, *c3, *c4;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
//Create 3 linked focus managers
|
|
|
|
|
m2 = focus_test_manager_new(&root2, EINA_FALSE);
|
|
|
|
|
efl_ui_focus_manager_calc_register_logical(m, root2, root, m2);
|
|
|
|
|
focus_test_manager_set(root2, m);
|
|
|
|
|
|
|
|
|
|
m3 = focus_test_manager_new(&root3, EINA_FALSE);
|
|
|
|
|
efl_ui_focus_manager_calc_register_logical(m, root3, root, m3);
|
|
|
|
|
focus_test_manager_set(root3, m);
|
|
|
|
|
|
|
|
|
|
m4 = focus_test_manager_new(&root4, EINA_FALSE);
|
|
|
|
|
efl_ui_focus_manager_calc_register_logical(m, root4, root, m4);
|
|
|
|
|
focus_test_manager_set(root4, m);
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m2 = focus_test_manager_new(&root2);
|
|
|
|
|
m3 = focus_test_manager_new(&root3);
|
|
|
|
|
m4 = focus_test_manager_new(&root4);
|
|
|
|
|
c1_1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c1_2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
c1_3 = focus_test_object_new("child3", 0, 0, 20, 20);
|
|
|
|
|
focus_test_manager_set(c1_1, m2);
|
|
|
|
|
focus_test_manager_set(c1_2, m3);
|
|
|
|
|
focus_test_manager_set(c1_3, m4);
|
|
|
|
|
c2 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c3 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
c4 = focus_test_object_new("child3", 0, 0, 20, 20);
|
|
|
|
|
|
|
|
|
|
Efl_Ui_Focus_Object *objects[] = {c2, c3, c4, NULL};
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, c1_1, root, m2);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, c1_2, root, m3);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, c1_3, root, m4);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_register(m2, c2, root2, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m3, c3, root3, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m4, c4, root4, NULL);
|
|
|
|
|
|
|
|
|
|
Efl_Ui_Focus_Object *objects[] = {c2, c3, c4, NULL};
|
|
|
|
|
_check_chain(m, objects);
|
|
|
|
|
|
|
|
|
|
efl_unref(m2);
|
|
|
|
@ -364,11 +356,11 @@ EFL_START_TEST(logical_chain_single_redirect)
|
|
|
|
|
Efl_Ui_Focus_Manager *m, *m2;
|
|
|
|
|
Efl_Ui_Focus_Object *root,*root2, *c1_1, *c1_2, *c1_3, *c2_1, *c2_2, *c2_3;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m2 = focus_test_manager_new(&root2);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
m2 = focus_test_manager_new(&root2, EINA_FALSE);
|
|
|
|
|
focus_test_manager_set(root2, m);
|
|
|
|
|
c1_1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c1_2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
focus_test_manager_set(c1_2, m2);
|
|
|
|
|
c1_2 = root2;
|
|
|
|
|
c1_3 = focus_test_object_new("child3", 0, 0, 20, 20);
|
|
|
|
|
c2_1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c2_2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
@ -395,7 +387,9 @@ EFL_START_TEST(finalize_check)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL);
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
fail_if(m);
|
|
|
|
|
|
|
|
|
|
efl_unref(m);
|
|
|
|
@ -405,21 +399,19 @@ EFL_END_TEST
|
|
|
|
|
EFL_START_TEST(redirect_param)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m, *m2;
|
|
|
|
|
Efl_Ui_Focus_Object *root,*root2;
|
|
|
|
|
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(root2, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child2, 0, 20, 20, 20);
|
|
|
|
|
|
|
|
|
|
m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
m2 = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root2)
|
|
|
|
|
);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
m2 = focus_test_manager_new(&root2, EINA_FALSE);
|
|
|
|
|
efl_ui_focus_manager_calc_register_logical(m, root2, root, m2);
|
|
|
|
|
focus_test_manager_set(root2, m);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, child, root, m2);
|
|
|
|
|
efl_ui_focus_manager_focus_set(m, child);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m2, child2, root2, NULL);
|
|
|
|
|
efl_ui_focus_manager_focus_set(m, root2);
|
|
|
|
|
|
|
|
|
|
ck_assert_ptr_eq(efl_ui_focus_manager_redirect_get(m), m2);
|
|
|
|
|
|
|
|
|
@ -431,29 +423,35 @@ EFL_END_TEST
|
|
|
|
|
EFL_START_TEST(invalid_args_check)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root;
|
|
|
|
|
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child2, 0, 20, 20, 20);
|
|
|
|
|
|
|
|
|
|
m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root)
|
|
|
|
|
);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
//no child and no parent
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_register(m, NULL, NULL, NULL), 0);
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_register(m, child, NULL, NULL), 0);
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_register(m, NULL, root, NULL), 0);
|
|
|
|
|
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_register(m, child, root, NULL), 1);
|
|
|
|
|
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_update_parent(m, child, NULL), 0);
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_update_parent(m, NULL, NULL), 0);
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_update_parent(m, child, child2), 0);
|
|
|
|
|
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_register(m, child2, root, NULL), 1);
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_update_parent(m, child, child2), 1);
|
|
|
|
|
|
|
|
|
|
efl_unref(m);
|
|
|
|
|
}
|
|
|
|
|
EFL_END_TEST
|
|
|
|
@ -462,15 +460,13 @@ EFL_START_TEST(order_check)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Eina_List *order = NULL;
|
|
|
|
|
Efl_Ui_Focus_Object *root;
|
|
|
|
|
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child1, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child2, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child3, 0, 20, 20, 20);
|
|
|
|
|
|
|
|
|
|
m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root)
|
|
|
|
|
);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
//no child and no parent
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, child1, root, NULL);
|
|
|
|
@ -488,8 +484,9 @@ EFL_START_TEST(order_check)
|
|
|
|
|
//negativ check
|
|
|
|
|
order = eina_list_append(order, child1);
|
|
|
|
|
order = eina_list_append(order, child2);
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
ck_assert_int_eq(efl_ui_focus_manager_calc_update_children(m, root, order), 0);
|
|
|
|
|
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
efl_unref(m);
|
|
|
|
|
}
|
|
|
|
|
EFL_END_TEST
|
|
|
|
@ -497,16 +494,14 @@ EFL_END_TEST
|
|
|
|
|
EFL_START_TEST(logical_shift)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root;
|
|
|
|
|
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 0, 10, 10);
|
|
|
|
|
TEST_OBJ_NEW(child, 0, 0, 10, 10);
|
|
|
|
|
TEST_OBJ_NEW(sub, 0, 0, 10, 10);
|
|
|
|
|
TEST_OBJ_NEW(sub_sub, 0, 0, 10, 10);
|
|
|
|
|
TEST_OBJ_NEW(sub_child, 0, 0, 10, 10);
|
|
|
|
|
|
|
|
|
|
m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root)
|
|
|
|
|
);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, child, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register_logical(m, sub, root, NULL);
|
|
|
|
@ -519,9 +514,10 @@ EFL_START_TEST(logical_shift)
|
|
|
|
|
efl_ui_focus_manager_focus_set(m, sub);
|
|
|
|
|
ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(m), sub_child);
|
|
|
|
|
|
|
|
|
|
EXPECT_ERROR_START;
|
|
|
|
|
efl_ui_focus_manager_focus_set(m, sub_sub);
|
|
|
|
|
ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(m), sub_child);
|
|
|
|
|
|
|
|
|
|
EXPECT_ERROR_END;
|
|
|
|
|
efl_unref(m);
|
|
|
|
|
}
|
|
|
|
|
EFL_END_TEST
|
|
|
|
@ -529,21 +525,14 @@ EFL_END_TEST
|
|
|
|
|
EFL_START_TEST(root_redirect_chain)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m, *m2;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *root2;
|
|
|
|
|
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(root2, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child, 0, 20, 20, 20);
|
|
|
|
|
|
|
|
|
|
m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
m2 = focus_test_manager_new(&root2, EINA_TRUE);
|
|
|
|
|
focus_test_manager_set(root2, m);
|
|
|
|
|
|
|
|
|
|
m2 = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root2)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, root2, root, m2);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m2, child, root2, NULL);
|
|
|
|
|
efl_ui_focus_manager_focus_set(m2, child);
|
|
|
|
@ -558,35 +547,30 @@ EFL_END_TEST
|
|
|
|
|
EFL_START_TEST(root_redirect_chain_unset)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m, *m2, *m3, *m4;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *root2, *root3, *root4;
|
|
|
|
|
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(root2, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child2, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child3, 0, 20, 20, 20);
|
|
|
|
|
|
|
|
|
|
m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
m2 = focus_test_manager_new(&root2, EINA_FALSE);
|
|
|
|
|
m3 = focus_test_manager_new(&root3, EINA_FALSE);
|
|
|
|
|
m4 = focus_test_manager_new(&root4, EINA_FALSE);
|
|
|
|
|
focus_test_manager_set(root2, m);
|
|
|
|
|
focus_test_manager_set(root3, m);
|
|
|
|
|
focus_test_manager_set(root4, m3);
|
|
|
|
|
|
|
|
|
|
m2 = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root2)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
m3 = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root2)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
m4 = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root2)
|
|
|
|
|
);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, root2, root, m2);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, root3, root, m3);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m2, child, root2, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m3, child2, root3, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m3, root4, root3, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m4, child3, root4, NULL);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_redirect_set(m, m3);
|
|
|
|
|
efl_ui_focus_manager_redirect_set(m3, m4);
|
|
|
|
|
efl_ui_focus_manager_redirect_set(m4, m2);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, root2, root, m2);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m2, child, root2, NULL);
|
|
|
|
|
efl_ui_focus_manager_focus_set(m2, child);
|
|
|
|
|
|
|
|
|
|
ck_assert_ptr_eq(efl_ui_focus_manager_redirect_get(m), m2);
|
|
|
|
@ -605,16 +589,11 @@ static Efl_Ui_Focus_Manager_Calc*
|
|
|
|
|
_recursive_triangle_manager(int recusion_depth, Efl_Ui_Focus_Object **most_right, Efl_Ui_Focus_Object **most_left, Eina_List **managers)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m, *m_child1 = NULL, *m_child3 = NULL;
|
|
|
|
|
Efl_Ui_Focus_Object *child1, *child3;
|
|
|
|
|
Efl_Ui_Focus_Object *child1, *child3, *root;
|
|
|
|
|
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child2, 0, 20, 20, 20);
|
|
|
|
|
|
|
|
|
|
m = efl_add_ref(EFL_UI_FOCUS_MANAGER_CALC_CLASS, NULL,
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
printf("New manaager %p\n", m);
|
|
|
|
|
m = focus_test_manager_new(&root, recusion_depth == 0);
|
|
|
|
|
|
|
|
|
|
if (recusion_depth < 3)
|
|
|
|
|
{
|
|
|
|
@ -636,20 +615,14 @@ _recursive_triangle_manager(int recusion_depth, Efl_Ui_Focus_Object **most_right
|
|
|
|
|
if (most_left)
|
|
|
|
|
{
|
|
|
|
|
*most_left = child1;
|
|
|
|
|
printf("SETTING %p\n", child1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (most_right)
|
|
|
|
|
{
|
|
|
|
|
*most_right = child3;
|
|
|
|
|
printf("SETTING %p\n", child3);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
printf("Child 1 %p\n", child1);
|
|
|
|
|
printf("Child 2 %p\n", child2);
|
|
|
|
|
printf("Child 3 %p\n", child3);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, child1, root, m_child1);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, child2, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, child3, root, m_child3);
|
|
|
|
@ -681,14 +654,12 @@ EFL_START_TEST(first_touch_check)
|
|
|
|
|
m = _recursive_triangle_manager(0, &most_right, &most_left, &managers);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_setup_on_first_touch(m, EFL_UI_FOCUS_DIRECTION_NEXT, efl_ui_focus_manager_root_get(m));
|
|
|
|
|
printf("%p %p\n", most_left, most_right);
|
|
|
|
|
|
|
|
|
|
ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(_get_highest_redirect(m)), most_left);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_reset_history(m);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_setup_on_first_touch(m, EFL_UI_FOCUS_DIRECTION_PREVIOUS, efl_ui_focus_manager_root_get(m));
|
|
|
|
|
printf("%s\n", efl_name_get(efl_ui_focus_manager_focus_get(_get_highest_redirect(m))));
|
|
|
|
|
ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(_get_highest_redirect(m)), most_right);
|
|
|
|
|
|
|
|
|
|
EINA_LIST_FREE(managers, m)
|
|
|
|
@ -701,7 +672,7 @@ EFL_START_TEST(test_request_subchild_empty)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
ck_assert_ptr_eq(efl_ui_focus_manager_request_subchild(m, root), NULL);
|
|
|
|
|
|
|
|
|
@ -714,7 +685,7 @@ EFL_START_TEST(test_request_subchild_one_element)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *c1;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, c1, root, NULL);
|
|
|
|
|
|
|
|
|
@ -730,7 +701,7 @@ EFL_START_TEST(test_request_subchild_child_alongside)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *c1, *c2;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, c1, root, NULL);
|
|
|
|
@ -749,7 +720,7 @@ EFL_START_TEST(test_request_subchild_child_logical_regular)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *c1, *c2;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
efl_ui_focus_manager_calc_register_logical(m, c1, root, NULL);
|
|
|
|
@ -768,7 +739,7 @@ EFL_START_TEST(test_request_subchild_child_regular_regular)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *c1, *c2;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, c1, root, NULL);
|
|
|
|
@ -787,7 +758,7 @@ EFL_START_TEST(test_unregister_last_focused_no_history)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *c1, *c2, *c3;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
c3 = focus_test_object_new("child3", 0, 0, 20, 20);
|
|
|
|
@ -810,7 +781,7 @@ EFL_START_TEST(test_unregister_last_focused)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *c1, *c2, *c3;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
c3 = focus_test_object_new("child3", 0, 0, 20, 20);
|
|
|
|
@ -835,7 +806,7 @@ EFL_START_TEST(test_unregister_last_focused_no_child)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *c1;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, c1, root, NULL);
|
|
|
|
|
|
|
|
|
@ -853,7 +824,7 @@ EFL_START_TEST(test_pop_history_element)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *c1, *c2, *c3;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
c3 = focus_test_object_new("child3", 0, 0, 20, 20);
|
|
|
|
@ -902,7 +873,7 @@ EFL_START_TEST(test_request_move)
|
|
|
|
|
Efl_Ui_Focus_Manager *m;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *c1, *c2, *c3, *c4, *c5, *c6;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
c2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
|
c3 = focus_test_object_new("child3", 0, 0, 20, 20);
|
|
|
|
@ -936,21 +907,14 @@ EFL_END_TEST
|
|
|
|
|
EFL_START_TEST(redirect_unregister_entrypoint)
|
|
|
|
|
{
|
|
|
|
|
Efl_Ui_Focus_Manager *m, *m2;
|
|
|
|
|
Efl_Ui_Focus_Object *root, *root2;
|
|
|
|
|
|
|
|
|
|
TEST_OBJ_NEW(root, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(root2, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child2, 0, 20, 20, 20);
|
|
|
|
|
TEST_OBJ_NEW(child3, 0, 20, 20, 20);
|
|
|
|
|
|
|
|
|
|
m = efl_add(EFL_UI_FOCUS_MANAGER_CALC_CLASS, efl_main_loop_get(),
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
m2 = efl_add(EFL_UI_FOCUS_MANAGER_CALC_CLASS, efl_main_loop_get(),
|
|
|
|
|
efl_ui_focus_manager_root_set(efl_added, root2)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
m2 = focus_test_manager_new(&root2, EINA_TRUE);
|
|
|
|
|
|
|
|
|
|
efl_ui_focus_manager_calc_register(m2, child3, root2, m2);
|
|
|
|
|
|
|
|
|
@ -963,19 +927,17 @@ EFL_START_TEST(redirect_unregister_entrypoint)
|
|
|
|
|
ck_assert_ptr_eq(efl_ui_focus_manager_redirect_get(m), m2);
|
|
|
|
|
ck_assert_ptr_eq(efl_ui_focus_manager_focus_get(m), NULL);
|
|
|
|
|
|
|
|
|
|
efl_del(m);
|
|
|
|
|
efl_del(m2);
|
|
|
|
|
efl_unref(m);
|
|
|
|
|
efl_unref(m2);
|
|
|
|
|
}
|
|
|
|
|
EFL_END_TEST
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
_child_focus_changed(void *data, const Efl_Event *ev)
|
|
|
|
|
_child_focus_changed(void *data, const Efl_Event *ev EINA_UNUSED)
|
|
|
|
|
{
|
|
|
|
|
Eina_Bool *flag = data;
|
|
|
|
|
|
|
|
|
|
*flag = EINA_TRUE;
|
|
|
|
|
|
|
|
|
|
printf("%s\n", efl_class_name_get(ev->object));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
EFL_START_TEST(test_events_child_focus)
|
|
|
|
@ -985,7 +947,7 @@ EFL_START_TEST(test_events_child_focus)
|
|
|
|
|
Eina_Bool froot = EINA_FALSE, fc1 = EINA_FALSE, fc2 = EINA_FALSE,
|
|
|
|
|
fc3 = EINA_FALSE, fc4 = EINA_FALSE, fc5 = EINA_FALSE, fc6 = EINA_FALSE;
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
c1 = focus_test_object_new("child1", 0, 0, 20, 20);
|
|
|
|
|
efl_parent_set(c1, root);
|
|
|
|
|
c2 = focus_test_object_new("child2", 0, 0, 20, 20);
|
|
|
|
@ -1087,7 +1049,7 @@ EFL_START_TEST(viewport_check)
|
|
|
|
|
|
|
|
|
|
focus_test_setup_cross(&middle, &south, &north, &east, &west);
|
|
|
|
|
|
|
|
|
|
m = focus_test_manager_new(&root);
|
|
|
|
|
m = focus_test_manager_new(&root, EINA_TRUE);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, middle, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, south, root, NULL);
|
|
|
|
|
efl_ui_focus_manager_calc_register(m, north, root, NULL);
|
|
|
|
|