diff --git a/legacy/evas/src/Evas.h b/legacy/evas/src/Evas.h index f1f28d282b..a3f69327c3 100644 --- a/legacy/evas/src/Evas.h +++ b/legacy/evas/src/Evas.h @@ -82,7 +82,8 @@ void evas_add_obscured_rect(Evas e, int x, int y, int w, int h); void evas_clear_obscured_rects(Evas e); /* drawing */ -void evas_render(Evas e); +Imlib_Updates evas_render_updates(Evas e); +void evas_render(Evas e); /* query for settings to use */ Visual *evas_get_optimal_visual(Evas e, Display *disp); diff --git a/legacy/evas/src/evas_render.c b/legacy/evas/src/evas_render.c index f2e4d1bee3..1f381abb97 100644 --- a/legacy/evas/src/evas_render.c +++ b/legacy/evas/src/evas_render.c @@ -150,7 +150,16 @@ evas_update_rect(Evas e, int x, int y, int w, int h) void evas_render(Evas e) { - Imlib_Updates up; + Imlib_Updates u; + + u = evas_render_updates(e); + if (u) imlib_updates_free(u); +} + +Imlib_Updates +evas_render_updates(Evas e) +{ + Imlib_Updates up = NULL; Evas_List delete_objects; Evas_List l, ll; void (*func_draw_add_rect) (Display *disp, Imlib_Image dstim, Window win, int x, int y, int w, int h); @@ -610,7 +619,6 @@ evas_render(Evas e) x, y, w, h); u = imlib_updates_get_next(u); } - imlib_updates_free(up); /* draw all objects now */ for (l = e->layers; l; l = l->next) { @@ -908,6 +916,7 @@ evas_render(Evas e) } } e->previous = e->current; + return up; } /* query for settings to use */