discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=14ce1880cb6933eb35aa976f2369e03605bbcde3
commit 14ce1880cb6933eb35aa976f2369e03605bbcde3 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Mon Sep 28 15:38:13 2015 -0400 use client window coords for resize-moving without a frame_object improves placement of csd windows ref T2750 --- src/bin/e_comp_object.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 84a1d00..9212c60 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -838,7 +838,7 @@ static void _e_comp_intercept_resize(void *data, Evas_Object *obj, int w, int h) { E_Comp_Object *cw = data; - int pw = 0, ph = 0, fw, fh, iw, ih, prev_w, prev_h; + int pw = 0, ph = 0, fw, fh, iw, ih, prev_w, prev_h, x, y; /* if frame_object does not exist, client_inset indicates CSD. * this means that ec->client matches cw->w/h, the opposite @@ -980,18 +980,22 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, int w, int h) * which also changes the client's position */ cw->force_move = 1; + if (cw->frame_object) + x = cw->x, y = cw->y; + else + x = cw->ec->x, y = cw->ec->y; switch (cw->ec->resize_mode) { case E_POINTER_RESIZE_BL: case E_POINTER_RESIZE_L: - evas_object_move(obj, cw->x + prev_w - cw->w, cw->y); + evas_object_move(obj, x + prev_w - cw->w, y); break; case E_POINTER_RESIZE_TL: - evas_object_move(obj, cw->x + prev_w - cw->w, cw->y + prev_h - cw->h); + evas_object_move(obj, x + prev_w - cw->w, y + prev_h - cw->h); break; case E_POINTER_RESIZE_T: case E_POINTER_RESIZE_TR: - evas_object_move(obj, cw->x, cw->y + prev_h - cw->h); + evas_object_move(obj, x, y + prev_h - cw->h); break; default: break; --