store e objects in comp win, delay deletion of e object comp wins until after animation

SVN revision: 84098
This commit is contained in:
Mike Blumenkrantz 2013-02-19 09:54:57 +00:00
parent 582af02062
commit 2981c653a8
2 changed files with 6 additions and 4 deletions

View File

@ -1522,8 +1522,8 @@ _e_comp_done_defer(E_Comp_Win *cw)
cw->force = 1;
if (cw->delete_me)
{
if (cw->real_obj && (cw->pop || cw->menu))
e_object_unref(evas_object_data_get(cw->obj, "eobj"));
if (cw->real_obj && cw->eobj)
e_object_unref(cw->eobj);
_e_comp_win_del(cw);
}
else cw->force = 0;
@ -1953,6 +1953,7 @@ _e_comp_win_dummy_add(E_Comp *c, Evas_Object *obj, E_Object *eobj, Eina_Bool nol
default:
CRI("UNHANDLED");
}
cw->eobj = eobj;
}
else
{
@ -2448,8 +2449,8 @@ _e_comp_win_hide(E_Comp_Win *cw)
cw->c->animating++;
}
cw->animating = 1;
if (cw->real_obj && (cw->pop || cw->menu))
e_object_ref(evas_object_data_get(cw->obj, "eobj"));
if (cw->real_obj && cw->eobj)
e_object_ref(cw->eobj);
_e_comp_win_render_queue(cw);
cw->pending_count++;

View File

@ -124,6 +124,7 @@ struct _E_Comp_Win
int depth; // window depth
Evas_Object *obj; // composite object
Evas_Object *shobj; // shadow object
E_Object *eobj; // internal e object
Eina_List *obj_mirror; // extra mirror objects
Ecore_X_Image *xim; // x image - software fallback
E_Comp_Render_Update *up; // update handler