efl_input_interface: verify check cancel event
this verifies that EFL_EVENT_POINTER_CANCEL is emitted correctly. Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Differential Revision: https://phab.enlightenment.org/D9171
This commit is contained in:
parent
e399bdd6ec
commit
5e54ad67ec
|
@ -358,6 +358,81 @@ EFL_START_TEST(efl_ui_win_test_efl_input_interface_pointer_wheel)
|
||||||
ck_assert_int_eq(pointer_wheel, EINA_TRUE);
|
ck_assert_int_eq(pointer_wheel, EINA_TRUE);
|
||||||
}
|
}
|
||||||
EFL_END_TEST
|
EFL_END_TEST
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
_check_ptr_cancel_down_event(void *data, const Efl_Event *ev)
|
||||||
|
{
|
||||||
|
Eina_Bool *called = data;
|
||||||
|
ck_assert_int_eq(efl_input_timestamp_get(ev->info), TIMESTAMP);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_wheel_delta_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_wheel_horizontal_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_double_click_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_triple_click_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_button_flags_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_touch_id_get(ev->info), 0);
|
||||||
|
position_eq(efl_input_pointer_position_get(ev->info), EINA_POSITION2D(20, 20));
|
||||||
|
ck_assert_int_eq(efl_input_pointer_button_get(ev->info), 1);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_action_get(ev->info), EFL_POINTER_ACTION_DOWN);
|
||||||
|
*called = EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_check_ptr_cancel_event(void *data, const Efl_Event *ev)
|
||||||
|
{
|
||||||
|
int *called = data;
|
||||||
|
ck_assert_int_eq(efl_input_timestamp_get(ev->info), TIMESTAMP);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_wheel_delta_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_wheel_horizontal_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_double_click_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_triple_click_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_button_flags_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_touch_id_get(ev->info), 0);
|
||||||
|
position_eq(efl_input_pointer_position_get(ev->info), EINA_POSITION2D(20, 20));
|
||||||
|
ck_assert_int_eq(efl_input_pointer_button_get(ev->info), 1);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_action_get(ev->info), EFL_POINTER_ACTION_CANCEL );
|
||||||
|
ck_assert_int_eq(*called, 0);
|
||||||
|
*called = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_check_ptr_cancel_up_event(void *data, const Efl_Event *ev)
|
||||||
|
{
|
||||||
|
Eina_Bool *called = data;
|
||||||
|
ck_assert_int_eq(efl_input_timestamp_get(ev->info), TIMESTAMP);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_wheel_delta_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_wheel_horizontal_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_double_click_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_triple_click_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_button_flags_get(ev->info), 0);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_touch_id_get(ev->info), 0);
|
||||||
|
position_eq(efl_input_pointer_position_get(ev->info), EINA_POSITION2D(20, 20));
|
||||||
|
ck_assert_int_eq(efl_input_pointer_button_get(ev->info), 1);
|
||||||
|
ck_assert_int_eq(efl_input_pointer_action_get(ev->info), EFL_POINTER_ACTION_UP);
|
||||||
|
ck_assert_int_eq(*called, 1);
|
||||||
|
*called = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
EFL_START_TEST(efl_ui_win_test_efl_input_interface_pointer_cancel)
|
||||||
|
{
|
||||||
|
Efl_Ui_Win *win;
|
||||||
|
Eina_Bool called_down = EINA_FALSE;
|
||||||
|
int called;
|
||||||
|
Efl_Canvas_Object *rect;
|
||||||
|
create_environment(&win, &rect);
|
||||||
|
|
||||||
|
evas_event_feed_mouse_move(evas_object_evas_get(win), 20, 20, TIMESTAMP - 1, NULL);
|
||||||
|
efl_event_callback_add(rect, EFL_EVENT_POINTER_DOWN, _check_ptr_cancel_down_event, &called_down);
|
||||||
|
evas_event_feed_mouse_down(evas_object_evas_get(win), 1, 0, TIMESTAMP, NULL);
|
||||||
|
ck_assert_int_eq(called_down, EINA_TRUE);
|
||||||
|
called = EINA_FALSE;
|
||||||
|
|
||||||
|
efl_event_callback_add(rect, EFL_EVENT_POINTER_CANCEL, _check_ptr_cancel_event, &called);
|
||||||
|
efl_event_callback_add(rect, EFL_EVENT_POINTER_UP, _check_ptr_cancel_up_event, &called);
|
||||||
|
evas_event_feed_mouse_cancel(evas_object_evas_get(win), TIMESTAMP, NULL);
|
||||||
|
ck_assert_int_eq(called, 2);
|
||||||
|
}
|
||||||
|
EFL_END_TEST
|
||||||
void
|
void
|
||||||
efl_ui_test_win(TCase *tc)
|
efl_ui_test_win(TCase *tc)
|
||||||
{
|
{
|
||||||
|
@ -371,4 +446,5 @@ efl_ui_test_win(TCase *tc)
|
||||||
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_up);
|
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_up);
|
||||||
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_in_out);
|
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_in_out);
|
||||||
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_wheel);
|
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_wheel);
|
||||||
|
tcase_add_test(tc, efl_ui_win_test_efl_input_interface_pointer_cancel);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue