diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 51464091c..09e928009 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -307,14 +307,13 @@ _e_comp_cb_nocomp_begin_timeout(void *data) } -static Eina_Bool +static void _e_comp_client_update(E_Client *ec) { int pw, ph; - Eina_Bool post = EINA_FALSE; DBG("UPDATE [%p] pm = %p", ec, ec->pixmap); - if (e_object_is_del(E_OBJECT(ec))) return EINA_FALSE; + if (e_object_is_del(E_OBJECT(ec))) return; e_pixmap_size_get(ec->pixmap, &pw, &ph); @@ -327,7 +326,6 @@ _e_comp_client_update(E_Client *ec) e_pixmap_size_changed(ec->pixmap, pw, ph)) { e_pixmap_image_clear(ec->pixmap, 0); - post = EINA_TRUE; e_comp_object_render_update_del(ec->frame); //clear update } else if (!e_pixmap_size_get(ec->pixmap, NULL, NULL)) @@ -346,7 +344,6 @@ _e_comp_client_update(E_Client *ec) if (e_pixmap_is_x(ec->pixmap) && (!ec->override)) evas_object_resize(ec->frame, ec->w, ec->h); } - return post || (!e_pixmap_is_x(ec->pixmap)); } static void @@ -398,11 +395,7 @@ _e_comp_cb_update(E_Comp *c) { /* clear update flag */ e_comp_object_render_update_del(ec->frame); - if (_e_comp_client_update(ec)) - { - c->post_updates = eina_list_append(c->post_updates, ec); - e_object_ref(E_OBJECT(ec)); - } + _e_comp_client_update(ec); } _e_comp_fps_update(c); if (conf->fps_show) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index ca3207408..8a139a3e3 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3484,6 +3484,11 @@ end: eina_iterator_free(it); E_FREE_FUNC(cw->pending_updates, eina_tiler_free); + if (ret) + { + cw->comp->post_updates = eina_list_append(cw->comp->post_updates, cw->ec); + e_object_ref(E_OBJECT(cw->ec)); + } return ret; }