struct wlsc_compositor *compositor = surface->compositor;
wl_list_remove(&surface->link);
- wl_list_insert(compositor->surface_list.prev, &surface->link);
+ wl_list_insert(&compositor->surface_list, &surface->link);
}
static void
struct wlsc_compositor *compositor = surface->compositor;
wl_list_remove(&surface->link);
- wl_list_insert(&compositor->surface_list, &surface->link);
+ wl_list_insert(compositor->surface_list.prev, &surface->link);
}
void
else
glClear(GL_COLOR_BUFFER_BIT);
- wl_list_for_each(es, &ec->surface_list, link)
+ wl_list_for_each_reverse(es, &ec->surface_list, link)
wlsc_surface_draw(es, output);
if (ec->focus)
&pos->member != (head); \
pos = __container_of(pos->member.next, pos, member))
+#define wl_list_for_each_reverse(pos, head, member) \
+ for (pos = __container_of((head)->prev, pos, member); \
+ &pos->member != (head); \
+ pos = __container_of(pos->member.prev, pos, member))
+
struct wl_array {
uint32_t size;
uint32_t alloc;