When checking for engine info changes, use the New engine info passed

in to us for the checks (not the old existing engine info).

NB: Fixes T134 and T135 buggers

Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
Chris Michael 2013-06-05 13:13:34 +01:00
parent 19d73071c4
commit 4d505eed1c
1 changed files with 17 additions and 15 deletions

View File

@ -679,33 +679,33 @@ eng_setup(Evas *evas, void *info)
re = epd->engine.data.output;
if (_re_wincheck(re))
{
if ((re->info->info.display != re->win->disp) ||
(re->info->info.surface != re->win->surface) ||
(re->info->info.screen != re->win->screen) ||
(re->info->info.depth != re->win->depth) ||
(re->info->info.rotation != re->win->rot) ||
(re->info->info.destination_alpha != re->win->alpha))
if ((inf->info.display != re->win->disp) ||
(inf->info.surface != re->win->surface) ||
(inf->info.screen != re->win->screen) ||
(inf->info.depth != re->win->depth) ||
(inf->info.rotation != re->win->rot) ||
(inf->info.destination_alpha != re->win->alpha))
{
Eina_Bool inc = EINA_FALSE;
Evas_GL_Wl_Window *new_win = NULL;
if ((re->win) && (re->win->surface) &&
(re->info->info.surface = NULL))
if ((re->win) && (re->win->surface) && (!inf->info.surface))
{
eng_window_free(re->win);
gl_wins--;
re->win = NULL;
re->info = inf;
return 1;
}
new_win = eng_window_new(re->info->info.display,
re->info->info.surface,
re->info->info.screen,
re->info->info.depth,
new_win = eng_window_new(inf->info.display,
inf->info.surface,
inf->info.screen,
inf->info.depth,
epd->output.w, epd->output.h,
re->info->indirect,
re->info->info.destination_alpha,
re->info->info.rotation);
inf->indirect,
inf->info.destination_alpha,
inf->info.rotation);
if (new_win)
{
if (re->win)
@ -725,6 +725,8 @@ eng_setup(Evas *evas, void *info)
if ((re->win) && (inc))
re->win->gl_context->references--;
}
re->info = inf;
}
else if ((re->win->w != epd->output.w) ||
(re->win->h != epd->output.h))