=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-tree.c,v retrieving revision 1.23 retrieving revision 1.24 diff -c -r1.23 -r1.24 *** src/usr.bin/tmux/window-tree.c 2017/11/02 18:27:35 1.23 --- src/usr.bin/tmux/window-tree.c 2017/11/02 18:43:51 1.24 *************** *** 1,4 **** ! /* $OpenBSD: window-tree.c,v 1.23 2017/11/02 18:27:35 nicm Exp $ */ /* * Copyright (c) 2017 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window-tree.c,v 1.24 2017/11/02 18:43:51 nicm Exp $ */ /* * Copyright (c) 2017 Nicholas Marriott *************** *** 399,407 **** { struct window_tree_modedata *data = modedata; struct session *s, **l; ! struct session_group *sg; u_int n, i; for (i = 0; i < data->item_size; i++) window_tree_free_item(data->item_list[i]); free(data->item_list); --- 399,409 ---- { struct window_tree_modedata *data = modedata; struct session *s, **l; ! struct session_group *sg, *current; u_int n, i; + current = session_group_contains(data->fs.s); + for (i = 0; i < data->item_size; i++) window_tree_free_item(data->item_list[i]); free(data->item_list); *************** *** 412,420 **** n = 0; RB_FOREACH(s, sessions, &sessions) { if (data->squash_groups && ! (sg = session_group_contains(s)) != NULL && ! s != TAILQ_FIRST(&sg->sessions)) ! continue; l = xreallocarray(l, n + 1, sizeof *l); l[n++] = s; } --- 414,424 ---- n = 0; RB_FOREACH(s, sessions, &sessions) { if (data->squash_groups && ! (sg = session_group_contains(s)) != NULL) { ! if ((sg == current && s != data->fs.s) || ! (sg != current && s != TAILQ_FIRST(&sg->sessions))) ! continue; ! } l = xreallocarray(l, n + 1, sizeof *l); l[n++] = s; }