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);

-- 


Reply via email to