diff options
author | nicm <nicm> | 2020-04-22 21:01:28 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-04-22 21:01:28 +0000 |
commit | 899b3d2436ffc49e264cc869ddf35e8a9d01522b (patch) | |
tree | 11898152f717685d52ef9e399622625ab1a717b8 /window-tree.c | |
parent | 662728d6c7e1518e420ef430e85a44c249f8795f (diff) |
Indicate the marked pane in choose mode in reverse and add key to set
and clear it (m and M) and a key to jump to the starting pane (H).
Diffstat (limited to 'window-tree.c')
-rw-r--r-- | window-tree.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/window-tree.c b/window-tree.c index d32358a5..156aafd9 100644 --- a/window-tree.c +++ b/window-tree.c @@ -37,9 +37,11 @@ static void window_tree_key(struct window_mode_entry *, #define WINDOW_TREE_DEFAULT_FORMAT \ "#{?pane_format," \ - "#{pane_current_command} \"#{pane_title}\"" \ + "#{?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,6 +58,7 @@ static void window_tree_key(struct window_mode_entry *, 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,7 +1173,7 @@ window_tree_key(struct window_mode_entry *wme, struct client *c, struct window_tree_modedata *data = wme->data; struct window_tree_itemdata *item, *new_item; char *name, *prompt = NULL; - struct cmd_find_state fs; + struct cmd_find_state fs, *fsp = &data->fs; int finished; u_int tagged, x, y, idx; struct session *ns; @@ -1192,6 +1195,21 @@ window_tree_key(struct window_mode_entry *wme, struct client *c, 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); switch (item->type) { |