discomfitor pushed a commit to branch enlightenment-0.19.

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

commit e7176b5104556fb02e0c707e8c29e3b53527912b
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Sep 11 13:04:02 2015 -0400

    ensure that non-fullscreen nocomp clients have their layers re-set
    
    in the case where a window is fullscreen without having the 'fullscreen'
    flag set, the previously-used layer must be reapplied upon nocomp end
    in order to avoid breaking the compositor
---
 src/bin/e_comp.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index a016721..5146409 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -245,6 +245,8 @@ _e_comp_cb_nocomp_begin(E_Comp *c)
       Eina_Bool fs;
 
       fs = c->nocomp_ec->fullscreen;
+      if (!fs)
+        c->nocomp_ec->saved.layer = c->nocomp_ec->layer;
       c->nocomp_ec->fullscreen = 0;
       c->nocomp_ec->layer = E_LAYER_CLIENT_PRIO;
       evas_object_layer_set(c->nocomp_ec->frame, E_LAYER_CLIENT_PRIO);
@@ -356,18 +358,17 @@ _e_comp_nocomp_end(E_Comp *c)
    
    if (c->nocomp_ec)
      {
-        if (c->nocomp_ec->fullscreen)
-          {
-             E_Layer layer = MAX(c->nocomp_ec->saved.layer, 
E_LAYER_CLIENT_NORMAL);
-
-             if (!e_config->allow_above_fullscreen)
-               layer = E_LAYER_CLIENT_FULLSCREEN;
-             else if (e_config->mode.presentation)
-               layer = E_LAYER_CLIENT_TOP;
-             c->nocomp_ec->fullscreen = 0;
-             evas_object_layer_set(c->nocomp_ec->frame, layer);
-             c->nocomp_ec->fullscreen = 1;
-          }
+        E_Layer layer = MAX(c->nocomp_ec->saved.layer, E_LAYER_CLIENT_NORMAL);
+        Eina_Bool fs;
+
+        if (!e_config->allow_above_fullscreen)
+          layer = E_LAYER_CLIENT_FULLSCREEN;
+        else if (e_config->mode.presentation)
+          layer = E_LAYER_CLIENT_TOP;
+        fs = c->nocomp_ec->fullscreen;
+        c->nocomp_ec->fullscreen = 0;
+        evas_object_layer_set(c->nocomp_ec->frame, layer);
+        c->nocomp_ec->fullscreen = fs;
      }
    c->nocomp_ec = NULL;
 }

-- 


Reply via email to