diff --git a/src/lib/ecore_evas/ecore_evas_buffer.c b/src/lib/ecore_evas/ecore_evas_buffer.c index 241a122daa..cad4999337 100644 --- a/src/lib/ecore_evas/ecore_evas_buffer.c +++ b/src/lib/ecore_evas/ecore_evas_buffer.c @@ -100,7 +100,8 @@ _ecore_evas_resize(Ecore_Evas *ee, int w, int h) } if (bdata->image) evas_object_image_data_set(bdata->image, bdata->pixels); - if (ee->func.fn_resize) ee->func.fn_resize(ee); + else + bdata->resized = 1; } static void @@ -163,6 +164,11 @@ _ecore_evas_buffer_prepare(Ecore_Evas *ee) _ecore_evas_resize(ee, w, h); bdata->pixels = evas_object_image_data_get(bdata->image, 1); } + else if (bdata->resized) + { + if (ee->func.fn_resize) ee->func.fn_resize(ee); + bdata->resized = 0; + } return EINA_TRUE; } diff --git a/src/lib/ecore_evas/ecore_evas_buffer.h b/src/lib/ecore_evas/ecore_evas_buffer.h index e29dee335b..1249c380f4 100644 --- a/src/lib/ecore_evas/ecore_evas_buffer.h +++ b/src/lib/ecore_evas/ecore_evas_buffer.h @@ -10,6 +10,7 @@ struct _Ecore_Evas_Engine_Buffer_Data { void *(*alloc_func) (void *data, int size); void *data; Eina_Bool in_render : 1; + Eina_Bool resized : 1; }; #endif /* _ECORE_EVAS_BUFFER_PRIVATE_H_ */