ensure clients possess comp_data before dereferencing it during x11 stacking

ref T2566
This commit is contained in:
Mike Blumenkrantz 2015-07-21 14:34:11 -04:00
parent 5c00c1009b
commit b51e5fa0b2
1 changed files with 3 additions and 3 deletions

View File

@ -677,7 +677,7 @@ _e_comp_x_client_stack(E_Client *ec)
ecore_x_window_shadow_tree_flush();
/* try stacking below */
if (e_comp->nocomp_ec && (ec != e_comp->nocomp_ec))
if (e_comp->nocomp_ec && e_comp->nocomp_ec->comp_data && (ec != e_comp->nocomp_ec))
win = _e_comp_x_client_window_get(e_comp->nocomp_ec);
else
{
@ -685,7 +685,7 @@ _e_comp_x_client_stack(E_Client *ec)
do
{
ec2 = e_client_above_get(ec2);
if (ec2 && e_client_has_xwindow(ec2) && (!ec2->new_client) &&
if (ec2 && e_client_has_xwindow(ec2) && ec2->comp_data && (!ec2->new_client) &&
(e_client_is_stacking(ec2) || ((!ec2->override) || ec2->internal)))
{
if (ec2->layer != ec->layer) break;
@ -702,7 +702,7 @@ _e_comp_x_client_stack(E_Client *ec)
do
{
ec2 = e_client_below_get(ec2);
if (ec2 && e_client_has_xwindow(ec2) && (!ec2->new_client) &&
if (ec2 && e_client_has_xwindow(ec2) && ec2->comp_data && (!ec2->new_client) &&
(e_client_is_stacking(ec2) || ((!ec2->override) || ec2->internal)))
{
if (ec2->layer != ec->layer) break;