=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-tree.c,v retrieving revision 1.46 retrieving revision 1.47 diff -c -r1.46 -r1.47 *** src/usr.bin/tmux/window-tree.c 2020/04/09 15:35:27 1.46 --- src/usr.bin/tmux/window-tree.c 2020/04/22 21:01:28 1.47 *************** *** 1,4 **** ! /* $OpenBSD: window-tree.c,v 1.46 2020/04/09 15:35:27 nicm Exp $ */ /* * Copyright (c) 2017 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window-tree.c,v 1.47 2020/04/22 21:01:28 nicm Exp $ */ /* * Copyright (c) 2017 Nicholas Marriott *************** *** 37,45 **** #define WINDOW_TREE_DEFAULT_FORMAT \ "#{?pane_format," \ ! "#{pane_current_command} \"#{pane_title}\"" \ "," \ "#{?window_format," \ "#{window_name}#{window_flags} " \ "(#{window_panes} panes)" \ "#{?#{==:#{window_panes},1}, \"#{pane_title}\",}" \ --- 37,47 ---- #define WINDOW_TREE_DEFAULT_FORMAT \ "#{?pane_format," \ ! "#{?pane_marked,#[reverse],}" \ ! "#{pane_current_command}#{?pane_active,*,}#{?pane_marked,M,} \"#{pane_title}\"" \ "," \ "#{?window_format," \ + "#{?window_marked_flag,#[reverse],}" \ "#{window_name}#{window_flags} " \ "(#{window_panes} panes)" \ "#{?#{==:#{window_panes},1}, \"#{pane_title}\",}" \ *************** *** 56,61 **** --- 58,64 ---- static const struct menu_item window_tree_menu_items[] = { { "Select", '\r', NULL }, { "Expand", KEYC_RIGHT, NULL }, + { "Mark", 'm', NULL }, { "", KEYC_NONE, NULL }, { "Tag", 't', NULL }, { "Tag All", '\024', NULL }, *************** *** 1170,1176 **** struct window_tree_modedata *data = wme->data; struct window_tree_itemdata *item, *new_item; char *name, *prompt = NULL; ! struct cmd_find_state fs; int finished; u_int tagged, x, y, idx; struct session *ns; --- 1173,1179 ---- struct window_tree_modedata *data = wme->data; struct window_tree_itemdata *item, *new_item; char *name, *prompt = NULL; ! struct cmd_find_state fs, *fsp = &data->fs; int finished; u_int tagged, x, y, idx; struct session *ns; *************** *** 1191,1196 **** --- 1194,1214 ---- break; case '>': data->offset++; + break; + case 'H': + mode_tree_expand(data->data, (uint64_t)fsp->s); + mode_tree_expand(data->data, (uint64_t)fsp->wl); + if (!mode_tree_set_current(data->data, (uint64_t)wme->wp)) + mode_tree_set_current(data->data, (uint64_t)fsp->wl); + break; + case 'm': + window_tree_pull_item(item, &ns, &nwl, &nwp); + server_set_marked(ns, nwl, nwp); + mode_tree_build(data->data); + break; + case 'M': + server_clear_marked(); + mode_tree_build(data->data); break; case 'x': window_tree_pull_item(item, &ns, &nwl, &nwp);