Allow choose commands to be used outside tmux, so long as at least one

client is attached.
This commit is contained in:
Nicholas Marriott
2013-03-21 16:09:59 +00:00
parent 8903c1f167
commit 180faf73af
8 changed files with 181 additions and 258 deletions

35
tmux.h
View File

@ -883,18 +883,24 @@ struct window_mode {
/* Structures for choose mode. */
struct window_choose_data {
struct client *client;
struct session *session; /* Session of current client. */
struct session *tree_session; /* Session of items in tree. */
struct format_tree *ft;
struct winlink *wl;
char *ft_template;
char *command;
struct client *start_client;
struct session *start_session;
u_int idx;
int type;
#define TREE_OTHER 0x0
#define TREE_WINDOW 0x1
#define TREE_SESSION 0x2
struct session *tree_session; /* session of items in tree */
struct winlink *wl;
int pane_id;
char *ft_template;
struct format_tree *ft;
char *command;
};
struct window_choose_mode_item {
@ -2196,18 +2202,19 @@ extern const struct window_mode window_choose_mode;
void window_choose_add(struct window_pane *,
struct window_choose_data *);
void window_choose_ready(struct window_pane *,
u_int, void (*)(struct window_choose_data *),
void (*)(struct window_choose_data *));
struct window_choose_data *window_choose_data_create(struct cmd_ctx *);
void window_choose_ctx(struct window_choose_data *);
u_int, void (*)(struct window_choose_data *));
struct window_choose_data *window_choose_data_create (int,
struct client *, struct session *);
void window_choose_data_free(struct window_choose_data *);
void window_choose_data_run(struct window_choose_data *);
struct window_choose_data *window_choose_add_window(struct window_pane *,
struct cmd_ctx *, struct session *, struct winlink *,
struct client *, struct session *, struct winlink *,
const char *, char *, u_int);
struct window_choose_data *window_choose_add_session(struct window_pane *,
struct cmd_ctx *, struct session *, const char *,
struct client *, struct session *, const char *,
char *, u_int);
struct window_choose_data *window_choose_add_item(struct window_pane *,
struct cmd_ctx *, struct winlink *, const char *,
struct client *, struct winlink *, const char *,
char *, u_int);
void window_choose_expand_all(struct window_pane *);