summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2016-03-14 12:23:19 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2016-03-14 14:27:15 -0400
commit885d24eeab83793ac5b385876d3619d0d8b846d5 (patch)
tree5e8a4511299b2899fa0a6cb92ae7efdaa6633eb4
parentfd816230c448bbbcc13626f4f763f6d14c736df6 (diff)
downloadenlightenment-885d24eeab83793ac5b385876d3619d0d8b846d5.tar.gz
unify client post_updates management code into single function
-rw-r--r--src/bin/e_comp.c10
-rw-r--r--src/bin/e_comp.h1
-rw-r--r--src/bin/e_comp_object.c12
-rw-r--r--src/bin/e_comp_wl.c14
4 files changed, 16 insertions, 21 deletions
diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 4bce85d22b..0f9fbf10b3 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -1422,6 +1422,16 @@ e_comp_render_queue(void)
}
E_API void
+e_comp_client_post_update_add(E_Client *ec)
+{
+ if (ec->on_post_updates) return;
+ ec->on_post_updates = EINA_TRUE;
+ e_comp->post_updates = eina_list_append(e_comp->post_updates, ec);
+ REFD(ec, 111);
+ e_object_ref(E_OBJECT(ec));
+}
+
+E_API void
e_comp_shape_queue(void)
{
if ((e_comp->comp_type != E_PIXMAP_TYPE_X) && (!e_comp_util_has_x())) return;
diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h
index 1f4f2d59c2..c39199398b 100644
--- a/src/bin/e_comp.h
+++ b/src/bin/e_comp.h
@@ -186,6 +186,7 @@ E_API E_Comp *e_comp_new(void);
E_API int e_comp_internal_save(void);
EINTERN int e_comp_shutdown(void);
E_API void e_comp_render_queue(void);
+E_API void e_comp_client_post_update_add(E_Client *ec);
E_API void e_comp_shape_queue(void);
E_API void e_comp_shape_queue_block(Eina_Bool block);
E_API E_Comp_Config *e_comp_config_get(void);
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index a17a6cee0b..b7ff1120ea 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -901,10 +901,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));
+ e_comp_client_post_update_add(cw->ec);
}
else if (e_comp_object_render(ec->frame))
{
@@ -3818,12 +3815,7 @@ end:
eina_iterator_free(it);
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));
- }
+ e_comp_client_post_update_add(cw->ec);
return ret;
}
diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index c2aa458d25..bc0073ed15 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -141,17 +141,9 @@ _e_comp_wl_evas_cb_hide(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EIN
e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
e_comp_object_dirty(ec->frame);
- if (!e_comp_object_render(ec->frame))
- {
- e_object_unref(E_OBJECT(ec));
- return;
- }
- if (!ec->on_post_updates)
- {
- ec->on_post_updates = EINA_TRUE;
- e_comp->post_updates = eina_list_append(e_comp->post_updates, ec);
- }
- else e_object_unref(E_OBJECT(ec));
+ if (e_comp_object_render(ec->frame))
+ e_comp_client_post_update_add(ec);
+ e_object_unref(E_OBJECT(ec));
}
static void