discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=70f053cd76508ac1e30b9392b35ec4c82e71a96d
commit 70f053cd76508ac1e30b9392b35ec4c82e71a96d Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Thu Dec 3 14:09:23 2015 -0500 use client geometry for calculations in x11 ConfigureRequest handler the values requested by the client will be based on its geometry and not the geometry of the frame. using the frame geometry here results in windows moving ↘ based on the top/left frame sizes fix T2912 --- src/bin/e_comp_x.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index fde492e..6564b44 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -1561,8 +1561,8 @@ _e_comp_x_configure_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore return ECORE_CALLBACK_PASS_ON; } - x = ox = ec->x; - y = oy = ec->y; + x = ox = ec->client.x; + y = oy = ec->client.y; w = ow = ec->client.w; h = oh = ec->client.h; @@ -1599,6 +1599,7 @@ _e_comp_x_configure_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore h = ev->h, _e_comp_x_client_data_get(ec)->initial_attributes.h = ev->h; } + e_comp_object_frame_xy_adjust(ec->frame, x, y, &x, &y); e_comp_object_frame_wh_adjust(ec->frame, w, h, &w, &h); move = (x != ec->x) || (y != ec->y); @@ -1610,8 +1611,7 @@ _e_comp_x_configure_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore { E_Zone *zone; - ec->saved.x = x; - ec->saved.y = y; + e_comp_object_frame_xy_unadjust(ec->frame, x, y, &ec->saved.x, &ec->saved.y); zone = e_comp_zone_xy_get(x, y); if (zone && (zone->x || zone->y)) @@ -1643,10 +1643,7 @@ _e_comp_x_configure_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore if (resize && (!ec->lock_client_size) && (move || ((!ec->maximized) && (!ec->fullscreen)))) { if ((ec->maximized & E_MAXIMIZE_TYPE) != E_MAXIMIZE_NONE) - { - ec->saved.w = w; - ec->saved.h = h; - } + e_comp_object_frame_wh_unadjust(ec->frame, w, h, &ec->saved.w, &ec->saved.h); else { evas_object_resize(ec->frame, w, h); --