forked from enlightenment/enlightenment
add client refs for the nocomp client
this client may be referenced after deletion during render loop fix T6151
This commit is contained in:
parent
0fada40917
commit
ef69fabd47
|
@ -4385,7 +4385,11 @@ e_client_fullscreen(E_Client *ec, E_Fullscreen policy)
|
|||
ec->need_fullscreen = 1;
|
||||
if (ec->new_client) return;
|
||||
if (e_comp->nocomp_ec && (ec->desk == e_comp->nocomp_ec->desk))
|
||||
e_comp->nocomp_ec = ec;
|
||||
{
|
||||
e_object_unref(E_OBJECT(e_comp->nocomp_ec));
|
||||
e_object_ref(E_OBJECT(ec));
|
||||
e_comp->nocomp_ec = ec;
|
||||
}
|
||||
ec->desk->fullscreen_clients = eina_list_append(ec->desk->fullscreen_clients, ec);
|
||||
ec->pre_res_change.valid = 0;
|
||||
|
||||
|
|
|
@ -221,6 +221,7 @@ _e_comp_cb_nocomp_begin(void)
|
|||
|
||||
ecf = _e_comp_fullscreen_check();
|
||||
if (!ecf) return;
|
||||
e_object_ref(E_OBJECT(ecf));
|
||||
e_comp->nocomp_ec = ecf;
|
||||
E_CLIENT_FOREACH(ec)
|
||||
if (ec != ecf) e_client_redirected_set(ec, 0);
|
||||
|
@ -357,7 +358,7 @@ _e_comp_nocomp_end(void)
|
|||
evas_object_layer_set(e_comp->nocomp_ec->frame, layer);
|
||||
e_comp->nocomp_ec->fullscreen = fs;
|
||||
}
|
||||
e_comp->nocomp_ec = NULL;
|
||||
E_FREE_FUNC(e_comp->nocomp_ec, e_object_unref);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
|
|
Loading…
Reference in New Issue