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;
|
ec->need_fullscreen = 1;
|
||||||
if (ec->new_client) return;
|
if (ec->new_client) return;
|
||||||
if (e_comp->nocomp_ec && (ec->desk == e_comp->nocomp_ec->desk))
|
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->desk->fullscreen_clients = eina_list_append(ec->desk->fullscreen_clients, ec);
|
||||||
ec->pre_res_change.valid = 0;
|
ec->pre_res_change.valid = 0;
|
||||||
|
|
||||||
|
|
|
@ -221,6 +221,7 @@ _e_comp_cb_nocomp_begin(void)
|
||||||
|
|
||||||
ecf = _e_comp_fullscreen_check();
|
ecf = _e_comp_fullscreen_check();
|
||||||
if (!ecf) return;
|
if (!ecf) return;
|
||||||
|
e_object_ref(E_OBJECT(ecf));
|
||||||
e_comp->nocomp_ec = ecf;
|
e_comp->nocomp_ec = ecf;
|
||||||
E_CLIENT_FOREACH(ec)
|
E_CLIENT_FOREACH(ec)
|
||||||
if (ec != ecf) e_client_redirected_set(ec, 0);
|
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);
|
evas_object_layer_set(e_comp->nocomp_ec->frame, layer);
|
||||||
e_comp->nocomp_ec->fullscreen = fs;
|
e_comp->nocomp_ec->fullscreen = fs;
|
||||||
}
|
}
|
||||||
e_comp->nocomp_ec = NULL;
|
E_FREE_FUNC(e_comp->nocomp_ec, e_object_unref);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
|
|
Loading…
Reference in New Issue