forked from enlightenment/efl
evas_events: prevent double event_freeze in evas_object_freeze_events_set
Summary: This patch prevent that event_freeze_count is greater than 1 in `evas_object_freeze_events_set` Test Plan: make check Reviewers: bu5hm4n, zmike Reviewed By: zmike Subscribers: zmike, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8325
This commit is contained in:
parent
597b82444a
commit
721f1776db
|
@ -3743,6 +3743,12 @@ _efl_canvas_object_efl_object_event_thaw(Eo *obj, Evas_Object_Protected_Data *pd
|
|||
EAPI void
|
||||
evas_object_freeze_events_set(Eo *eo_obj, Eina_Bool freeze)
|
||||
{
|
||||
Evas_Object_Protected_Data *pd = EVAS_OBJECT_DATA_SAFE_GET(eo_obj);
|
||||
EINA_SAFETY_ON_NULL_RETURN(pd);
|
||||
|
||||
freeze = !!freeze;
|
||||
if (pd->freeze_events == freeze) return;
|
||||
|
||||
if (freeze)
|
||||
efl_event_freeze(eo_obj);
|
||||
else
|
||||
|
|
|
@ -30,7 +30,29 @@ EFL_START_TEST(evas_object_various)
|
|||
}
|
||||
EFL_END_TEST
|
||||
|
||||
EFL_START_TEST(evas_object_freeze_events)
|
||||
{
|
||||
Evas *evas = EVAS_TEST_INIT_EVAS();
|
||||
Evas_Object *obj = evas_object_rectangle_add(evas);
|
||||
|
||||
evas_object_freeze_events_set(obj, EINA_TRUE);
|
||||
ck_assert_int_eq(evas_object_freeze_events_get(obj), EINA_TRUE);
|
||||
evas_object_freeze_events_set(obj, EINA_FALSE);
|
||||
ck_assert_int_eq(evas_object_freeze_events_get(obj), EINA_FALSE);
|
||||
|
||||
evas_object_freeze_events_set(obj, EINA_TRUE);
|
||||
evas_object_freeze_events_set(obj, EINA_TRUE);
|
||||
ck_assert_int_eq(evas_object_freeze_events_get(obj), EINA_TRUE);
|
||||
evas_object_freeze_events_set(obj, EINA_FALSE);
|
||||
ck_assert_int_eq(evas_object_freeze_events_get(obj), EINA_FALSE);
|
||||
evas_object_freeze_events_set(obj, EINA_FALSE);
|
||||
evas_object_freeze_events_set(obj, EINA_TRUE);
|
||||
ck_assert_int_eq(evas_object_freeze_events_get(obj), EINA_TRUE);
|
||||
}
|
||||
EFL_END_TEST
|
||||
|
||||
void evas_test_object(TCase *tc)
|
||||
{
|
||||
tcase_add_test(tc, evas_object_various);
|
||||
tcase_add_test(tc, evas_object_freeze_events);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue