Evas: Fix calculations for framespce when changed.

SVN revision: 66537
This commit is contained in:
Christopher Michael 2011-12-26 23:10:27 +00:00
parent c4aa1944f9
commit f1e9715711
1 changed files with 12 additions and 3 deletions

View File

@ -1401,6 +1401,7 @@ evas_render_updates_internal(Evas *e,
_evas_render_prev_cur_clip_cache_add(e, obj); _evas_render_prev_cur_clip_cache_add(e, obj);
} }
eina_array_clean(&e->restack_objects); eina_array_clean(&e->restack_objects);
/* phase 3. add exposes */ /* phase 3. add exposes */
EINA_LIST_FREE(e->damages, r) EINA_LIST_FREE(e->damages, r)
{ {
@ -1408,13 +1409,20 @@ evas_render_updates_internal(Evas *e,
r->x, r->y, r->w, r->h); r->x, r->y, r->w, r->h);
eina_rectangle_free(r); eina_rectangle_free(r);
} }
/* phase 4. framespace, output & viewport changes */ /* phase 4. framespace, output & viewport changes */
if (e->framespace.changed) if (e->framespace.changed)
{ {
int fx, fy, fw, fh;
fx = e->viewport.x - e->framespace.x;
fy = e->viewport.y - e->framespace.y;
fw = e->viewport.w + e->framespace.w;
fh = e->viewport.h + e->framespace.h;
e->engine.func->output_redraws_rect_add(e->engine.data.output, e->engine.func->output_redraws_rect_add(e->engine.data.output,
e->framespace.x, e->framespace.y, fx, fy, fw, fh);
e->framespace.w, e->framespace.h);
} }
if (e->viewport.changed) if (e->viewport.changed)
{ {
e->engine.func->output_redraws_rect_add(e->engine.data.output, e->engine.func->output_redraws_rect_add(e->engine.data.output,
@ -1439,6 +1447,7 @@ evas_render_updates_internal(Evas *e,
0, 0, 0, 0,
e->output.w, e->output.h); e->output.w, e->output.h);
} }
/* phase 5. add obscures */ /* phase 5. add obscures */
EINA_LIST_FOREACH(e->obscures, ll, r) EINA_LIST_FOREACH(e->obscures, ll, r)
{ {