static ListRow *gl_Window_add_group(ListData *ldata, ListRow *row) { /* Right now, 'row' doesn't have any child. */ struct gl_Window_Data *wdata = ldata->data; Window *group = row->data, *w; ListRow *cur = row; FOR_EACH_WINDOW(wdata, w, if (w->w_group != group) continue; cur = glist_add_row(ldata, w, cur); if (w == wdata->fore) ldata->selected = cur; if (w->w_type == W_TYPE_GROUP) cur = gl_Window_add_group(ldata, cur);) ;
static void gl_Display_rebuild(ListData *ldata) { /* recreate the rows */ Display *d; ListRow *row = NULL; for (d = displays; d; d = d->d_next) { row = glist_add_row(ldata, d, row); if (d == display) ldata->selected = row; } glist_display_all(ldata); }