discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=a35c7637a25d6e7e0266bf8febf82d6f45c2a94d

commit a35c7637a25d6e7e0266bf8febf82d6f45c2a94d
Author: Derek Foreman <der...@osg.samsung.com>
Date:   Fri Feb 19 11:50:16 2016 -0600

    Track whether objects are on the post_updates list or not
    
    Will use this to prevent accidentally adding objects to the list twice
---
 src/bin/e_client.h      | 1 +
 src/bin/e_comp_canvas.c | 1 +
 src/bin/e_comp_object.c | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index 14427b9..a6b0cac 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 0ce97fd..c5cb76d 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 817737b..7a41fa3 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));
@@ -3820,6 +3821,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));

-- 


Reply via email to