evas_object_image_size_get(bdata->image, &w, &h);
if ((w != ee->w) || (h != ee->h))
_ecore_evas_resize(ee, w, h);
- bdata->pixels = evas_object_image_data_get(bdata->image, 1);
+ if (evas_changed_get(ee->evas) && !bdata->lock_data)
+ {
+ bdata->pixels = evas_object_image_data_get(bdata->image, 1);
+ bdata->lock_data = EINA_TRUE;
+ }
}
else if (bdata->resized)
{
if (ee->func.fn_resize) ee->func.fn_resize(ee);
bdata->resized = 0;
}
-
return EINA_TRUE;
}
EINA_LIST_FOREACH(post->updated_area, l, r)
evas_object_image_data_update_add(bdata->image,
r->x, r->y, r->w, r->h);
+
+ bdata->lock_data = EINA_FALSE;
}
EAPI int
void (*free_func) (void *data, void *pix);
void *(*alloc_func) (void *data, int size);
void *data;
- Eina_Bool in_render : 1;
+ Eina_Bool lock_data : 1;
Eina_Bool resized : 1;
};