EAPI void e_layout_child_lower_below(Evas_Object *obj, Evas_Object *below) { E_Layout_Item *li; li = evas_object_data_get(obj, "e_layout_data"); if (!li) return; if (!eina_list_data_find(li->sd->items, below)) return; if (!eina_list_data_find(li->sd->items, obj)) return; if ((li->sd->items) && eina_list_next(li->sd->items)) { li->sd->items = eina_list_remove(li->sd->items, obj); evas_object_stack_below(obj, below); li->sd->items = eina_list_prepend_relative(li->sd->items, obj, below); } }
EAPI void e_place_zone_region_smart_cleanup(E_Zone *zone) { E_Desk *desk; Eina_List *borders = NULL; E_Border_List *bl; E_Border *border; E_OBJECT_CHECK(zone); desk = e_desk_current_get(zone); bl = e_container_border_list_first(desk->zone->container); while ((border = e_container_border_list_next(bl))) { /* Build a list of windows on this desktop and not iconified. */ if ((border->desk == desk) && (!border->iconic) && (!border->lock_user_location)) { int area; Eina_List *ll; E_Border *bd; /* Ordering windows largest to smallest gives better results */ area = border->w * border->h; EINA_LIST_FOREACH(borders, ll, bd) { int testarea; testarea = bd->w * bd->h; /* Insert the border if larger than the current border */ if (area >= testarea) { borders = eina_list_prepend_relative(borders, border, bd); break; } } /* Looped over all borders without placing, so place at end */ if (!ll) borders = eina_list_append(borders, border); }