summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2015-12-03 14:09:23 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2015-12-04 16:00:38 -0500
commita6ded999a95b0673fb4162df80674fd03d9812db (patch)
treea78a8526ff09316a9f32c3086d63a1edf2edc6e2
parent29634ea4025f317039db28e4530c7fdb4caa3646 (diff)
downloadenlightenment-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.c13
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);