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; } --