mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 21:56:57 +00:00
Add a separate mode struct for the active window mode if any.
This commit is contained in:
32
tmux.h
32
tmux.h
@ -693,25 +693,37 @@ struct screen_write_ctx {
|
||||
* Window mode. Windows can be in several modes and this is used to call the
|
||||
* right function to handle input and output.
|
||||
*/
|
||||
struct window_mode_entry;
|
||||
struct window_mode {
|
||||
const char *name;
|
||||
|
||||
struct screen *(*init)(struct window_pane *, struct cmd_find_state *,
|
||||
struct args *);
|
||||
void (*free)(struct window_pane *);
|
||||
void (*resize)(struct window_pane *, u_int, u_int);
|
||||
void (*key)(struct window_pane *, struct client *,
|
||||
struct screen *(*init)(struct window_mode_entry *,
|
||||
struct cmd_find_state *, struct args *);
|
||||
void (*free)(struct window_mode_entry *);
|
||||
void (*resize)(struct window_mode_entry *, u_int, u_int);
|
||||
void (*key)(struct window_mode_entry *, struct client *,
|
||||
struct session *, struct winlink *, key_code,
|
||||
struct mouse_event *);
|
||||
|
||||
const char *(*key_table)(struct window_pane *);
|
||||
void (*command)(struct window_pane *, struct client *,
|
||||
const char *(*key_table)(struct window_mode_entry *);
|
||||
void (*command)(struct window_mode_entry *, struct client *,
|
||||
struct session *, struct winlink *, struct args *,
|
||||
struct mouse_event *);
|
||||
void (*formats)(struct window_pane *, struct format_tree *);
|
||||
void (*formats)(struct window_mode_entry *,
|
||||
struct format_tree *);
|
||||
};
|
||||
#define WINDOW_MODE_TIMEOUT 180
|
||||
|
||||
/* Active window mode. */
|
||||
struct window_mode_entry {
|
||||
struct window_pane *wp;
|
||||
|
||||
const struct window_mode *mode;
|
||||
void *data;
|
||||
|
||||
u_int prefix;
|
||||
};
|
||||
|
||||
/* Child window structure. */
|
||||
struct window_pane {
|
||||
u_int id;
|
||||
@ -780,11 +792,9 @@ struct window_pane {
|
||||
struct grid *saved_grid;
|
||||
struct grid_cell saved_cell;
|
||||
|
||||
const struct window_mode *mode;
|
||||
void *modedata;
|
||||
struct window_mode_entry *mode;
|
||||
struct event modetimer;
|
||||
time_t modelast;
|
||||
u_int modeprefix;
|
||||
char *searchstr;
|
||||
|
||||
TAILQ_ENTRY(window_pane) entry;
|
||||
|
Reference in New Issue
Block a user