Add support for a single "marked pane". There is one marked pane in the

server at a time; it may be toggled or cleared with select-pane -m and
-M (the border is highlighted). A new target '~' or '{marked}' specifies
the marked pane to commands and it is the default target for the
swap-pane and join-pane -s flag (this makes them much simpler to use -
mark the source pane and then change to the target pane to run swapp or
joinp).
This commit is contained in:
nicm
2015-06-04 11:43:51 +00:00
parent a3edfd9e84
commit a863834574
11 changed files with 296 additions and 40 deletions

13
tmux.h
View File

@ -1688,8 +1688,12 @@ struct session *cmd_find_current(struct cmd_q *);
struct session *cmd_find_session(struct cmd_q *, const char *, int);
struct winlink *cmd_find_window(struct cmd_q *, const char *,
struct session **);
struct winlink *cmd_find_window_marked(struct cmd_q *, const char *,
struct session **);
struct winlink *cmd_find_pane(struct cmd_q *, const char *, struct session **,
struct window_pane **);
struct winlink *cmd_find_pane_marked(struct cmd_q *, const char *,
struct session **, struct window_pane **);
struct client *cmd_find_client(struct cmd_q *, const char *, int);
int cmd_find_index(struct cmd_q *, const char *,
struct session **);
@ -1850,6 +1854,15 @@ const char *key_string_lookup_key(int);
/* server.c */
extern struct clients clients;
extern struct clients dead_clients;
extern struct session *marked_session;
extern struct winlink *marked_winlink;
extern struct window_pane *marked_window_pane;
void server_set_marked(struct session *, struct winlink *,
struct window_pane *);
void server_clear_marked(void);
int server_is_marked(struct session *, struct winlink *,
struct window_pane *);
int server_check_marked(void);
int server_start(int, char *);
void server_update_socket(void);
void server_add_accept(int);