ensure client is actually stacked below the above-client when raising

This commit is contained in:
Mike Blumenkrantz 2014-05-29 12:19:43 -04:00
parent 7440513af0
commit b4e4214e5c
1 changed files with 3 additions and 2 deletions

View File

@ -1161,11 +1161,12 @@ _e_comp_intercept_raise(void *data, Evas_Object *obj)
return; return;
} }
if (!EINA_INLIST_GET(cw->ec)->next) return;//already highest on layer if (!EINA_INLIST_GET(cw->ec)->next) return;//already highest on layer
o = evas_object_above_get(obj);
{ {
E_Client *ecabove = e_client_above_get(cw->ec); E_Client *ecabove = e_client_above_get(cw->ec);
if (ecabove && (ecabove->frame == cw->comp->layers[cw->layer].obj)) return; //highest below marker if (ecabove && (ecabove->frame == cw->comp->layers[cw->layer].obj) &&
(ecabove->frame == o)) return; //highest below marker
} }
o = evas_object_above_get(obj);
if (evas_object_layer_get(o) != evas_object_layer_get(obj)) return; //already at top! if (evas_object_layer_get(o) != evas_object_layer_get(obj)) return; //already at top!
if (obj == cw->comp->layers[cw->layer].obj) //never raise a non-layer marker! if (obj == cw->comp->layers[cw->layer].obj) //never raise a non-layer marker!
{ {