diff --git a/src/bin/e_client.h b/src/bin/e_client.h index 14427b9d1..a6b0cac78 100644 --- a/src/bin/e_client.h +++ b/src/bin/e_client.h @@ -698,6 +698,7 @@ struct E_Client Eina_Bool maximize_override : 1; // client is doing crazy stuff and should "just do it" when moving/resizing Eina_Bool keyboard_resizing : 1; + Eina_Bool on_post_updates : 1; // client is on the post update list #ifdef HAVE_WAYLAND uuid_t uuid; #endif diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index a126d0529..ac30c05ba 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -53,6 +53,7 @@ _e_comp_canvas_render_post(void *data EINA_UNUSED, Evas *e EINA_UNUSED, void *ev EINA_LIST_FREE(e_comp->post_updates, ec) { //INF("POST %p", ec); + ec->on_post_updates = EINA_FALSE; if (!e_object_is_del(E_OBJECT(ec))) e_pixmap_image_clear(ec->pixmap, 1); UNREFD(ec, 111); diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 887a0f85e..116367459 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -900,6 +900,7 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj EINA_UNUSED) if (cw->native) { E_FREE_FUNC(cw->pending_updates, eina_tiler_free); + cw->ec->on_post_updates = EINA_TRUE; e_comp->post_updates = eina_list_append(e_comp->post_updates, cw->ec); REFD(cw->ec, 111); e_object_ref(E_OBJECT(cw->ec)); @@ -3787,6 +3788,7 @@ end: E_FREE_FUNC(cw->pending_updates, eina_tiler_free); if (ret) { + cw->ec->on_post_updates = EINA_TRUE; e_comp->post_updates = eina_list_append(e_comp->post_updates, cw->ec); REFD(cw->ec, 111); e_object_ref(E_OBJECT(cw->ec));