forked from enlightenment/enlightenment
ensure that normal clients are stacked below overrides when raising
when a client is set to "Always on Top", it will be on the same layer as override clients. this can cause strange stacking and mouse eventing in cases where these windows occupy the same space and the normal client is stacked over the override
This commit is contained in:
parent
8946e3e504
commit
cb2ddb736d
|
@ -1323,8 +1323,19 @@ _e_comp_intercept_raise(void *data, Evas_Object *obj)
|
|||
evas_object_raise(obj);
|
||||
else
|
||||
{
|
||||
/* still stack below layer marker */
|
||||
evas_object_stack_below(obj, e_comp->layers[cw->layer].obj);
|
||||
Evas_Object *op;
|
||||
|
||||
/* still stack below override below the layer marker */
|
||||
for (op = o = e_comp->layers[cw->layer].obj;
|
||||
o && o != e_comp->layers[cw->layer - 1].obj;
|
||||
op = o, o = evas_object_below_get(o))
|
||||
{
|
||||
E_Client *ec;
|
||||
|
||||
ec = e_comp_object_client_get(o);
|
||||
if (ec && (!ec->override)) break;
|
||||
}
|
||||
evas_object_stack_below(obj, op);
|
||||
if (e_client_focus_track_enabled())
|
||||
e_client_raise_latest_set(cw->ec); //modify raise list if necessary
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue