discomfitor pushed a commit to branch enlightenment-0.19.

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

commit faf4ec630c37df78bf4fb97b70f32f7d88ebc16b
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Mon May 18 13:19:33 2015 -0400

    force xwindow stacking to obey nocomp policy and stack below current nocomp
    
    fix T2277
---
 src/bin/e_comp_x.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 76011d8..8df7063 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -621,17 +621,22 @@ _e_comp_x_client_stack(E_Client *ec)
    ecore_x_window_shadow_tree_flush();
 
    /* try stacking below */
-   ec2 = ec;
-   do
+   if (e_comp_get(NULL)->nocomp_ec && (ec != e_comp_get(NULL)->nocomp_ec))
+     win = _e_comp_x_client_window_get(e_comp_get(NULL)->nocomp_ec);
+   else
      {
-        ec2 = e_client_above_get(ec2);
-        if (ec2 && (e_client_is_stacking(ec2) || ((!ec2->override) || 
ec2->internal)))
+        ec2 = ec;
+        do
           {
-             if (ec2->layer != ec->layer) break;
-             if (ec2->comp_data->need_reparent && 
(!ec2->comp_data->reparented)) continue;
-             win = _e_comp_x_client_window_get(ec2);
-          }
-     } while (ec2 && (!win));
+             ec2 = e_client_above_get(ec2);
+             if (ec2 && (e_client_is_stacking(ec2) || ((!ec2->override) || 
ec2->internal)))
+               {
+                  if (ec2->layer != ec->layer) break;
+                  if (ec2->comp_data->need_reparent && 
(!ec2->comp_data->reparented)) continue;
+                  win = _e_comp_x_client_window_get(ec2);
+               }
+          } while (ec2 && (!win));
+     }
 
    /* try stacking above */
    if (!win)

-- 


Reply via email to