static Eina_Bool
_e_client_rotation_zone_set(E_Zone *zone, E_Client *include_ec, E_Client *exclude_ec)
{
- E_Client *ec;
+ E_Client *ec, *bg_ec = NULL;
Eina_List *target_list = NULL, *l;
int i, angle;
- Eina_Bool can_rotate = EINA_TRUE, ret = EINA_FALSE, found_bg_ec = EINA_FALSE;
+ Eina_Bool can_rotate = EINA_TRUE, ret = EINA_FALSE;
TRACE_DS_BEGIN(CLIENT ROTATION ZONE SET);
continue;
}
- if ((!found_bg_ec) || (include_ec == ec))
+ if ((!bg_ec) ||
+ ((include_ec == ec) &&
+ (evas_object_layer_get(ec->frame) >= evas_object_layer_get(bg_ec->frame))))
{
EDBG(ec, "Append to rotation target list");
target_list = eina_list_append(target_list, ec);
if (!ec->argb)
{
EDBG(ec, "Found Topmost Fullscreen Window");
- found_bg_ec = EINA_TRUE;
+ bg_ec = ec;
}
else
{
(!ec->parent))
{
EDBG(ec, "Found Topmost Fullscreen Window");
- found_bg_ec = EINA_TRUE;
+ bg_ec = ec;
}
}
}