discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ef3260a7997bbcfbe642130d40d0974092d7e5de

commit ef3260a7997bbcfbe642130d40d0974092d7e5de
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Mar 22 16:15:16 2017 -0400

    only center internal windows once
    
    these shouldn't re-center on every resize
---
 src/bin/e_comp_object.c |  5 ++++-
 src/bin/e_win.c         | 12 ++++++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 4ac3b97..fed50aa 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -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;
 }
 
diff --git a/src/bin/e_win.c b/src/bin/e_win.c
index b22823d..5ae7283 100644
--- a/src/bin/e_win.c
+++ b/src/bin/e_win.c
@@ -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;
 }
 

-- 


Reply via email to