forked from enlightenment/enlightenment
handle shade <-> unshade toggling in same frame
this should result in a no-op instead of a fail-op fix T6006
This commit is contained in:
parent
500b9a2eb2
commit
4f28e49f46
|
@ -2117,22 +2117,6 @@ _e_comp_object_shade_animator(void *data)
|
||||||
return cw->ec->shading;
|
return cw->ec->shading;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_e_comp_smart_cb_shading(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
|
||||||
{
|
|
||||||
E_Comp_Object *cw = data;
|
|
||||||
|
|
||||||
if (!cw->ec) return; //NYI
|
|
||||||
E_FREE_FUNC(cw->shade.anim, ecore_animator_del);
|
|
||||||
|
|
||||||
cw->shade.x = cw->x;
|
|
||||||
cw->shade.y = cw->y;
|
|
||||||
e_comp_object_signal_emit(cw->smart_obj, "e,state,shading", "e");
|
|
||||||
cw->shade.start = ecore_loop_time_get();
|
|
||||||
cw->shade.dir = (E_Direction)event_info;
|
|
||||||
cw->shade.anim = ecore_animator_add(_e_comp_object_shade_animator, cw);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_comp_smart_cb_shaded(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
_e_comp_smart_cb_shaded(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||||
{
|
{
|
||||||
|
@ -2148,16 +2132,24 @@ _e_comp_smart_cb_shaded(void *data, Evas_Object *obj EINA_UNUSED, void *event_in
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_comp_smart_cb_unshading(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
_e_comp_smart_cb_shading(void *data, Evas_Object *obj, void *event_info)
|
||||||
{
|
{
|
||||||
E_Comp_Object *cw = data;
|
E_Comp_Object *cw = data;
|
||||||
|
|
||||||
if (!cw->ec) return; //NYI
|
if (!cw->ec) return; //NYI
|
||||||
|
if (cw->shade.anim && EINA_DBL_EQ(cw->shade.val, 0.0))
|
||||||
|
{
|
||||||
|
cw->ec->shaded = 0;
|
||||||
|
_e_comp_smart_cb_shaded(data, obj, event_info);
|
||||||
|
return;
|
||||||
|
}
|
||||||
E_FREE_FUNC(cw->shade.anim, ecore_animator_del);
|
E_FREE_FUNC(cw->shade.anim, ecore_animator_del);
|
||||||
|
|
||||||
cw->shade.dir = (E_Direction)event_info;
|
cw->shade.x = cw->x;
|
||||||
e_comp_object_signal_emit(cw->smart_obj, "e,state,unshading", "e");
|
cw->shade.y = cw->y;
|
||||||
|
e_comp_object_signal_emit(cw->smart_obj, "e,state,shading", "e");
|
||||||
cw->shade.start = ecore_loop_time_get();
|
cw->shade.start = ecore_loop_time_get();
|
||||||
|
cw->shade.dir = (E_Direction)event_info;
|
||||||
cw->shade.anim = ecore_animator_add(_e_comp_object_shade_animator, cw);
|
cw->shade.anim = ecore_animator_add(_e_comp_object_shade_animator, cw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2186,6 +2178,26 @@ _e_comp_smart_cb_unshaded(void *data, Evas_Object *obj EINA_UNUSED, void *event_
|
||||||
_e_comp_object_shade_animator(cw);
|
_e_comp_object_shade_animator(cw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_smart_cb_unshading(void *data, Evas_Object *obj, void *event_info)
|
||||||
|
{
|
||||||
|
E_Comp_Object *cw = data;
|
||||||
|
|
||||||
|
if (!cw->ec) return; //NYI
|
||||||
|
if (cw->shade.anim && EINA_DBL_EQ(cw->shade.val, 0.0))
|
||||||
|
{
|
||||||
|
cw->ec->shaded = 1;
|
||||||
|
_e_comp_smart_cb_unshaded(data, obj, event_info);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
E_FREE_FUNC(cw->shade.anim, ecore_animator_del);
|
||||||
|
|
||||||
|
cw->shade.dir = (E_Direction)event_info;
|
||||||
|
e_comp_object_signal_emit(cw->smart_obj, "e,state,unshading", "e");
|
||||||
|
cw->shade.start = ecore_loop_time_get();
|
||||||
|
cw->shade.anim = ecore_animator_add(_e_comp_object_shade_animator, cw);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_comp_smart_cb_maximize(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
_e_comp_smart_cb_maximize(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue