manage comp overrides for comp objects

fix T1019
This commit is contained in:
Mike Blumenkrantz 2014-02-26 11:45:50 -05:00
parent def17d763b
commit c01a1fcc6c
1 changed files with 20 additions and 0 deletions

View File

@ -2089,6 +2089,17 @@ _e_comp_object_util_del(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object
E_FREE_LIST(l, evas_object_del);
}
static void
_e_comp_object_util_restack(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
{
if (e_comp_util_object_is_above_nocomp(obj) &&
(!evas_object_data_get(obj, "comp_override")))
{
evas_object_data_set(obj, "comp_override", (void*)1);
e_comp_override_add(e_comp_util_evas_object_comp_get(obj));
}
}
static void
_e_comp_object_util_show(void *data EINA_UNUSED, Evas_Object *obj)
{
@ -2112,6 +2123,11 @@ _e_comp_object_util_show(void *data EINA_UNUSED, Evas_Object *obj)
if (ref) evas_object_ref(obj);
edje_object_signal_emit(obj, "e,state,visible", "e");
evas_object_data_set(obj, "comp_showing", (void*)1);
if (e_comp_util_object_is_above_nocomp(obj))
{
evas_object_data_set(obj, "comp_override", (void*)1);
e_comp_override_add(e_comp_util_evas_object_comp_get(obj));
}
}
static void
@ -2123,6 +2139,9 @@ _e_comp_object_util_hide(void *data EINA_UNUSED, Evas_Object *obj)
evas_object_data_del(obj, "comp_showing");
edje_object_signal_emit(obj, "e,state,hidden", "e");
evas_object_data_set(obj, "comp_hiding", (void*)1);
if (evas_object_data_del(obj, "comp_override"))
e_comp_override_timed_pop(e_comp_util_evas_object_comp_get(obj));
}
static void
@ -2275,6 +2294,7 @@ e_comp_object_util_add(Evas_Object *obj, E_Comp_Object_Type type)
evas_object_event_callback_add(o, EVAS_CALLBACK_MOVE, _e_comp_object_util_moveresize, z);
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _e_comp_object_util_del, z);
evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE, _e_comp_object_util_moveresize, z);
evas_object_event_callback_add(o, EVAS_CALLBACK_RESTACK, _e_comp_object_util_restack, z);
e_comp_object_signal_emit(o, "e,state,hidden", "e");