diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2015-12-03 14:09:23 -0500 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2015-12-04 16:00:38 -0500 |
commit | a6ded999a95b0673fb4162df80674fd03d9812db (patch) | |
tree | a78a8526ff09316a9f32c3086d63a1edf2edc6e2 | |
parent | 29634ea4025f317039db28e4530c7fdb4caa3646 (diff) | |
download | enlightenment-a6ded999a95b0673fb4162df80674fd03d9812db.tar.gz |
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
-rw-r--r-- | src/bin/e_comp_x.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index fde492efe7..6564b44a00 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); |