diff options
-rw-r--r-- | src/lib/ecore_evas/ecore_evas_buffer.c | 3 | ||||
-rw-r--r-- | src/lib/ecore_evas/ecore_evas_buffer.h | 1 |
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_ */ |