raster pushed a commit to branch master.

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

commit ab905c599f484a88700de9f318872bec9bea8ba7
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Wed Apr 21 13:23:12 2021 +0100

    e comp x - clean up some core removing if 0'd out code and comment some
---
 src/bin/e_comp.c        | 28 ----------------------------
 src/bin/e_comp_object.c | 16 ++++++++++++----
 src/bin/e_comp_x.c      | 45 +++++++++++++++++++++++++++------------------
 3 files changed, 39 insertions(+), 50 deletions(-)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 81e6089e5..f3c35176f 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -1779,34 +1779,6 @@ e_comp_override_add(void)
    if ((e_comp->nocomp_override > 0) && (e_comp->nocomp)) _e_comp_nocomp_end();
 }
 
-#if 0
-FIXME
-E_API void
-e_comp_block_window_add(void)
-{
-   e_comp->block_count++;
-   if (e_comp->block_win) return;
-   e_comp->block_win = ecore_x_window_new(e_comp->root, 0, 0, e_comp->w, 
e_comp->h);
-   INF("BLOCK WIN: %x", e_comp->block_win);
-   ecore_x_window_background_color_set(e_comp->block_win, 0, 0, 0);
-   e_comp_ignore_win_add(e_comp->block_win);
-   ecore_x_window_configure(e_comp->block_win,
-     ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING | 
ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
-     0, 0, 0, 0, 0, ((E_Comp_Win*)e_comp->wins)->win, 
ECORE_X_WINDOW_STACK_ABOVE);
-   ecore_x_window_show(e_comp->block_win);
-}
-
-E_API void
-e_comp_block_window_del(void)
-{
-   if (!e_comp->block_count) return;
-   e_comp->block_count--;
-   if (e_comp->block_count) return;
-   if (e_comp->block_win) ecore_x_window_free(e_comp->block_win);
-   e_comp->block_win = 0;
-}
-#endif
-
 E_API E_Comp *
 e_comp_find_by_window(Ecore_Window win)
 {
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 70a955f1f..f0747c89f 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2526,7 +2526,9 @@ _e_comp_smart_move(Evas_Object *obj, int x, int y)
      _e_comp_object_input_rect_update(cw);
    /* this gets called once during setup to init coords offscreen and 
guarantee first move */
    if (e_comp && cw->visible)
-     e_comp_shape_queue();
+     {
+        e_comp_shape_queue();
+     }
 }
 
 static void
@@ -2602,7 +2604,9 @@ _e_comp_smart_resize(Evas_Object *obj, int w, int h)
    if (!cw->visible) return;
    e_comp_render_queue();
    if (!cw->animating)
-     e_comp_shape_queue();
+     {
+        e_comp_shape_queue();
+     }
 }
 
 static void
@@ -2759,7 +2763,9 @@ _e_comp_object_util_show(void *data EINA_UNUSED, 
Evas_Object *obj)
           return;
      }
    else
-     e_comp_shape_queue();
+     {
+        e_comp_shape_queue();
+     }
 
    evas_object_show(obj);
    if (ref && (!stopping))
@@ -2832,7 +2838,9 @@ _e_comp_object_util_moveresize(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj
         e_zoomap_child_resize(data, w, h);
      }
    if (evas_object_visible_get(obj))
-     e_comp_shape_queue();
+     {
+        e_comp_shape_queue();
+     }
 }
 
 E_API void
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 4fbabb898..632c204a1 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -1693,39 +1693,48 @@ _e_comp_x_configure(void *data EINA_UNUSED, int type 
EINA_UNUSED, Ecore_X_Event_
    //INF("configure %p: %d,%d %dx%d", ec, ev->x, ev->y, ev->w, ev->h);
    if (ev->abovewin == 0)
      {
-        if (e_client_below_get(ec))
-          evas_object_lower(ec->frame);
+        // forcibly lower the window as it's not above anything
+        if (e_client_below_get(ec)) evas_object_lower(ec->frame);
      }
    else
      {
-        E_Client *ec2 = _e_comp_x_client_find_by_window(ev->abovewin);
+        E_Client *ec_above = _e_comp_x_client_find_by_window(ev->abovewin);
 
-        if (ec2)
+        // if we find the client the window is above
+        if (ec_above)
           {
-             /* client(ec) wants to be above a layer client(ec2) */
-             if (e_client_is_stacking(ec2)) //is it a stacking placeholder 
window?
+             // if the window to stack above is a layer marker window/client
+             // then we need to find the next one up and stack below that
+             // because the ec_above will be one layer below as layer marker
+             // is at the top of a layer
+             if (e_client_is_stacking(ec_above))
                {
-                  E_Client *ec3;
+                  E_Client *ec_next_up = e_client_above_get(ec_above);
 
-                  ec3 = e_client_above_get(ec2);
-                  /* stack under next client(ec3) */
-                  if (ec3)
+                  // stacking under the next win up == above ec_above
+                  if (ec_next_up)
                     {
-                       evas_object_layer_set(ec->frame, ec3->layer);
-                       if (!e_client_is_stacking(ec3))
-                         evas_object_stack_below(ec->frame, ec3->frame);
+                       evas_object_layer_set(ec->frame, ec_next_up->layer);
+                       evas_object_stack_below(ec->frame, ec_next_up->frame);
+                    }
+                  else // no marker above, so live on the same layer - on top
+                    {
+                       evas_object_layer_set(ec->frame, ec_above->layer);
                     }
-                  else //force override to obey our stacking
-                    evas_object_layer_set(ec->frame, ec2->layer);
                }
+             // if it's above is a regular win
              else
                {
-                  evas_object_layer_set(ec->frame, ec2->layer);
-                  evas_object_stack_above(ec->frame, ec2->frame);
+                  // if the layer obj is not right below already...
+                  evas_object_layer_set(ec->frame, ec_above->layer);
+                  evas_object_stack_above(ec->frame, ec_above->frame);
                }
           }
+        // we didnt find the client it's above - so stuff this on top
         else
-          evas_object_layer_set(ec->frame, E_LAYER_CLIENT_PRIO);
+          {
+             evas_object_layer_set(ec->frame, E_LAYER_CLIENT_PRIO);
+          }
      }
    move = (ec->client.x != ev->x) || (ec->client.y != ev->y);
    resize = (ec->client.w != ev->w) || (ec->client.h != ev->h);

-- 


Reply via email to