Zoomed panes are now like full screen floating panes.

This commit is contained in:
Michael Grant
2026-09-30 23:10:40 +01:00
parent 5a820e63b7
commit 7810f8abf3
29 changed files with 752 additions and 621 deletions

22
tmux.h
View File

@@ -1156,6 +1156,11 @@ enum pane_lines {
PANE_LINES_ROUNDED
};
/* Panes raised when they are made active. */
#define PANE_RAISE_FLOATING 0
#define PANE_RAISE_ALL 1
#define PANE_RAISE_OFF 2
/* Pane border indicator option. */
#define PANE_BORDER_OFF 0
#define PANE_BORDER_COLOUR 1
@@ -1312,7 +1317,6 @@ struct window_pane {
struct options *options;
struct layout_cell *layout_cell;
struct layout_cell *saved_layout_cell;
u_int sx;
u_int sy;
@@ -1455,14 +1459,12 @@ struct window {
struct window_pane *active;
struct window_pane *modal;
struct window_pane *modal_last;
struct window_pane *was_zoomed;
struct window_panes last_panes;
struct window_panes z_index;
struct window_panes panes;
int lastlayout;
struct layout_cell *layout_root;
struct layout_cell *saved_layout_root;
char *old_layout;
u_int sx;
@@ -1496,7 +1498,6 @@ struct window {
#define WINDOW_ACTIVITY 0x2
#define WINDOW_SILENCE 0x4
#define WINDOW_ZOOMED 0x8
#define WINDOW_WASZOOMED 0x10
#define WINDOW_RESIZE 0x20
#define WINDOW_ALERTFLAGS (WINDOW_BELL|WINDOW_ACTIVITY|WINDOW_SILENCE)
@@ -3719,12 +3720,13 @@ struct window_pane *window_add_pane(struct window *, struct window_pane *,
u_int, int);
void window_resize(struct window *, u_int, u_int, int, int);
void window_pane_send_resize(struct window_pane *, u_int, u_int);
void window_raise_pane(struct window_pane *);
void window_lower_pane(struct window_pane *);
int window_zoom(struct window_pane *);
int window_unzoom_pane(struct window_pane *, int);
int window_unzoom(struct window *, int);
int window_active_pane_is_over_zoom(struct window *);
struct window_pane *window_zoomed_pane(struct window *);
int window_push_zoom(struct window *, int, int);
int window_pop_zoom(struct window *);
void window_zoom_move(struct window_pane *, struct window_pane *);
void window_lost_pane(struct window *, struct window_pane *);
void window_remove_pane(struct window *, struct window_pane *);
struct window_pane *window_pane_at_index(struct window *, u_int);
@@ -3815,7 +3817,8 @@ int window_pane_get_pane_status(struct window_pane *);
struct style_range *window_pane_status_get_range(struct window_pane *, u_int,
u_int);
int window_pane_is_floating(struct window_pane *);
int window_pane_is_floating_with_hidden(struct window_pane *);
int window_pane_is_unzoomed_float(struct window_pane *);
int window_pane_is_raised(struct window_pane *);
/* window-border.c */
void window_set_fill_cells(struct window *);
@@ -3852,6 +3855,8 @@ int layout_cell_has_tiled_child(struct layout_cell *);
int layout_add_horizontal_border(struct layout_cell *,
struct layout_cell *, int);
void layout_fix_offsets(struct window *);
void layout_get_pane_geometry(struct window_pane *, int, int *,
int *, u_int *, u_int *);
void layout_fix_panes(struct window *, struct window_pane *);
void layout_resize_adjust(struct window *, struct layout_cell *,
enum layout_type, int);
@@ -3901,6 +3906,7 @@ int layout_insert_tile(struct window *, struct layout_cell *);
/* layout-custom.c */
#define LAYOUT_CUSTOM_OLD_FORMAT 0x1
char *layout_dump(struct window *, struct layout_cell *, int);
char *layout_dump_visible(struct window *, int);
int layout_parse(struct window *, const char *, char **);
/* layout-set.c */