raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=7227173169982f4e3b1d3b1483979bc3d636d4db

commit 7227173169982f4e3b1d3b1483979bc3d636d4db
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Thu Apr 23 17:00:21 2020 +0100

    e comp x - debug and correct mask handling for configure requests
---
 src/bin/e_comp_x.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 169e298c3..5eba41387 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -1747,16 +1747,26 @@ _e_comp_x_configure_request(void *data  EINA_UNUSED, 
int type EINA_UNUSED, Ecore
    int ox, oy, ow, oh;
    int x, y, w, h;
 
+//   printf("configure request {0x%08x}  %4i,%4i %4ix%4i b=%i [%c%c%c%c]\n",
+//          ev->win, ev->x, ev->y, ev->w, ev->h, ev->border,
+//          ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_X ? 'x' : ' ',
+//          ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_Y ? 'y' : ' ',
+//          ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_W ? 'w' : ' ',
+//          ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_H ? 'h' : ' ');
    if (e_comp_find_by_window(ev->win)) return ECORE_CALLBACK_RENEW;
    ec = _e_comp_x_client_find_by_window(ev->win);
 
    /* pass through requests for windows we haven't/won't reparent yet */
    if (ec && (!_e_comp_x_client_data_get(ec)->need_reparent) && 
(!_e_comp_x_client_data_get(ec)->reparented))
      {
-        _e_comp_x_client_data_get(ec)->initial_attributes.x = ev->x;
-        _e_comp_x_client_data_get(ec)->initial_attributes.y = ev->y;
-        ec->w = ec->client.w = 
_e_comp_x_client_data_get(ec)->initial_attributes.w = ev->w;
-        ec->h = ec->client.h = 
_e_comp_x_client_data_get(ec)->initial_attributes.h = ev->h;
+        if (ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_X)
+          _e_comp_x_client_data_get(ec)->initial_attributes.x = ev->x;
+        if (ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_Y)
+          _e_comp_x_client_data_get(ec)->initial_attributes.y = ev->y;
+        if (ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_W)
+          ec->w = ec->client.w = 
_e_comp_x_client_data_get(ec)->initial_attributes.w = ev->w;
+        if (ev->value_mask & ECORE_X_WINDOW_CONFIGURE_MASK_H)
+          ec->h = ec->client.h = 
_e_comp_x_client_data_get(ec)->initial_attributes.h = ev->h;
         ec->border_size = ev->border;
         ec->changes.size = 1;
         ec = NULL;
@@ -1778,7 +1788,7 @@ _e_comp_x_configure_request(void *data  EINA_UNUSED, int 
type EINA_UNUSED, Ecore
                                  ev->abovewin, ev->detail);
         return ECORE_CALLBACK_PASS_ON;
      }
-   
+
    x = ox = ec->client.x;
    y = oy = ec->client.y;
    w = ow = ec->client.w;

-- 


Reply via email to