only center internal windows once

these shouldn't re-center on every resize
This commit is contained in:
Mike Blumenkrantz 2017-03-22 16:15:16 -04:00
parent e1e9e68515
commit ef3260a799
2 changed files with 14 additions and 3 deletions

View File

@ -1310,7 +1310,10 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, int w, int h)
if (cw->ec->internal_elm_win && (!cw->ec->moving) && (!e_client_util_resizing_get(cw->ec)) &&
(!cw->ec->fullscreen) && (!cw->ec->maximized) &&
e_win_centered_get(cw->ec->internal_elm_win))
e_comp_object_util_center(obj);
{
e_comp_object_util_center(obj);
elm_win_center(cw->ec->internal_elm_win, 0, 0);
}
cw->force_move = 0;
}

View File

@ -166,7 +166,11 @@ _e_elm_win_trap_show(void *data, Evas_Object *o)
ctx->client->borderless |= borderless;
e_comp_object_frame_xy_adjust(ctx->client->frame, ctx->client->client.x, ctx->client->client.y, &ctx->client->x, &ctx->client->y);
e_comp_object_frame_wh_adjust(ctx->client->frame, ctx->client->client.w, ctx->client->client.h, &ctx->client->w, &ctx->client->h);
if (ctx->centered) e_comp_object_util_center(ctx->client->frame);
if (ctx->centered)
{
e_comp_object_util_center(ctx->client->frame);
ctx->centered =0;
}
else if (ctx->placed) evas_object_move(o, ctx->x, ctx->y);
if (ctx->sized) evas_object_resize(o, ctx->w, ctx->h);
return EINA_TRUE;
@ -218,7 +222,11 @@ _e_elm_win_trap_center(void *data, Evas_Object *o EINA_UNUSED, Eina_Bool h, Eina
ctx->centered = h | v;
ctx->placed = 1;
if (!ctx->client) return EINA_FALSE;
if (ctx->centered) e_comp_object_util_center(ctx->client->frame);
if (ctx->centered)
{
e_comp_object_util_center(ctx->client->frame);
ctx->centered = 0;
}
return EINA_FALSE;
}