discomfitor pushed a commit to branch enlightenment-0.19.

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

commit 2c77b0591ab097bb8c85ea2ddcbdabaa9294f118
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Tue Sep 8 17:47:48 2015 -0400

    ensure that normal clients are stacked below overrides when raising
    
    when a client is set to "Always on Top", it will be on the same layer
    as override clients. this can cause strange stacking and mouse eventing
    in cases where these windows occupy the same space and the normal client
    is stacked over the override
---
 src/bin/e_comp_object.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 1dc9b0f..772f8e0 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -1222,8 +1222,19 @@ _e_comp_intercept_raise(void *data, Evas_Object *obj)
      evas_object_raise(obj);
    else
      {
-        /* still stack below layer marker */
-        evas_object_stack_below(obj, cw->comp->layers[cw->layer].obj);
+        Evas_Object *op;
+
+        /* still stack below override below the layer marker */
+        for (op = o = cw->comp->layers[cw->layer].obj;
+             o && o != cw->comp->layers[cw->layer - 1].obj;
+             op = o, o = evas_object_below_get(o))
+          {
+             E_Client *ec;
+
+             ec = e_comp_object_client_get(o);
+             if (ec && (!ec->override)) break;
+          }
+        evas_object_stack_below(obj, op);
         if (e_client_focus_track_enabled())
           e_client_raise_latest_set(cw->ec); //modify raise list if necessary
      }

-- 


Reply via email to