summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/ecore_evas/ecore_evas_buffer.c3
-rw-r--r--src/lib/ecore_evas/ecore_evas_buffer.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/lib/ecore_evas/ecore_evas_buffer.c b/src/lib/ecore_evas/ecore_evas_buffer.c
index 80f4ac8e01..4910c072c8 100644
--- a/src/lib/ecore_evas/ecore_evas_buffer.c
+++ b/src/lib/ecore_evas/ecore_evas_buffer.c
@@ -147,6 +147,7 @@ _ecore_evas_buffer_render(Ecore_Evas *ee)
int rend = 0;
bdata = ee->engine.data;
+ if (bdata->in_render) return 0;
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
@@ -166,7 +167,9 @@ _ecore_evas_buffer_render(Ecore_Evas *ee)
if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
if (bdata->pixels)
{
+ bdata->in_render = 1;
updates = evas_render_updates(ee->evas);
+ bdata->in_render = 0;
}
if (bdata->image)
{
diff --git a/src/lib/ecore_evas/ecore_evas_buffer.h b/src/lib/ecore_evas/ecore_evas_buffer.h
index e065d8a5f9..e29dee335b 100644
--- a/src/lib/ecore_evas/ecore_evas_buffer.h
+++ b/src/lib/ecore_evas/ecore_evas_buffer.h
@@ -9,6 +9,7 @@ struct _Ecore_Evas_Engine_Buffer_Data {
void (*free_func) (void *data, void *pix);
void *(*alloc_func) (void *data, int size);
void *data;
+ Eina_Bool in_render : 1;
};
#endif /* _ECORE_EVAS_BUFFER_PRIVATE_H_ */