version 1.23, 2017/11/02 18:27:35 |
version 1.24, 2017/11/02 18:43:51 |
|
|
{ |
{ |
struct window_tree_modedata *data = modedata; |
struct window_tree_modedata *data = modedata; |
struct session *s, **l; |
struct session *s, **l; |
struct session_group *sg; |
struct session_group *sg, *current; |
u_int n, i; |
u_int n, i; |
|
|
|
current = session_group_contains(data->fs.s); |
|
|
for (i = 0; i < data->item_size; i++) |
for (i = 0; i < data->item_size; i++) |
window_tree_free_item(data->item_list[i]); |
window_tree_free_item(data->item_list[i]); |
free(data->item_list); |
free(data->item_list); |
|
|
n = 0; |
n = 0; |
RB_FOREACH(s, sessions, &sessions) { |
RB_FOREACH(s, sessions, &sessions) { |
if (data->squash_groups && |
if (data->squash_groups && |
(sg = session_group_contains(s)) != NULL && |
(sg = session_group_contains(s)) != NULL) { |
s != TAILQ_FIRST(&sg->sessions)) |
if ((sg == current && s != data->fs.s) || |
continue; |
(sg != current && s != TAILQ_FIRST(&sg->sessions))) |
|
continue; |
|
} |
l = xreallocarray(l, n + 1, sizeof *l); |
l = xreallocarray(l, n + 1, sizeof *l); |
l[n++] = s; |
l[n++] = s; |
} |
} |