diff --git a/usr.bin/tmux/cmd-resize-pane.c b/usr.bin/tmux/cmd-resize-pane.c index 5858d5c2f30..a4c6c1edb63 100644 --- a/usr.bin/tmux/cmd-resize-pane.c +++ b/usr.bin/tmux/cmd-resize-pane.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-resize-pane.c,v 1.57 2026/06/13 16:16:18 nicm Exp $ */ +/* $OpenBSD: cmd-resize-pane.c,v 1.58 2026/06/14 19:31:37 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -118,7 +118,7 @@ cmd_resize_pane_exec(struct cmd *self, struct cmdq_item *item) free(cause); return (CMD_RETURN_ERROR); } - status = options_get_number(w->options, "pane-border-status"); + status = window_get_pane_status(w); switch (status) { case PANE_STATUS_TOP: if (y != INT_MAX && wp->yoff == 1) diff --git a/usr.bin/tmux/format.c b/usr.bin/tmux/format.c index 68e73316584..82cc3548f90 100644 --- a/usr.bin/tmux/format.c +++ b/usr.bin/tmux/format.c @@ -1,4 +1,4 @@ -/* $OpenBSD: format.c,v 1.377 2026/06/13 20:07:30 nicm Exp $ */ +/* $OpenBSD: format.c,v 1.378 2026/06/14 19:31:37 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott @@ -1151,7 +1151,7 @@ format_cb_pane_at_top(struct format_tree *ft) return (NULL); w = wp->window; - status = options_get_number(w->options, "pane-border-status"); + status = window_get_pane_status(w); if (status == PANE_STATUS_TOP) flag = (wp->yoff == 1); else diff --git a/usr.bin/tmux/layout.c b/usr.bin/tmux/layout.c index 844b6102108..1c4ccc2351b 100644 --- a/usr.bin/tmux/layout.c +++ b/usr.bin/tmux/layout.c @@ -1,4 +1,4 @@ -/* $OpenBSD: layout.c,v 1.67 2026/06/14 18:59:15 nicm Exp $ */ +/* $OpenBSD: layout.c,v 1.68 2026/06/14 19:31:37 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -348,7 +348,7 @@ layout_fix_panes(struct window *w, struct window_pane *skip) int status, scrollbars, sb_pos, sb_w, sb_pad; u_int sx, sy; - status = options_get_number(w->options, "pane-border-status"); + status = window_get_pane_status(w); scrollbars = options_get_number(w->options, "pane-scrollbars"); sb_pos = options_get_number(w->options, "pane-scrollbars-position"); @@ -426,7 +426,7 @@ layout_resize_check(struct window *w, struct layout_cell *lc, u_int available, minimum; int status, scrollbars; - status = options_get_number(w->options, "pane-border-status"); + status = window_get_pane_status(w); scrollbars = options_get_number(w->options, "pane-scrollbars"); if (lc->type == LAYOUT_WINDOWPANE) { @@ -1060,7 +1060,7 @@ layout_split_pane(struct window_pane *wp, enum layout_type type, int size, lc = wp->window->layout_root; else lc = wp->layout_cell; - status = options_get_number(wp->window->options, "pane-border-status"); + status = window_get_pane_status(wp->window); scrollbars = options_get_number(wp->window->options, "pane-scrollbars"); /* Copy the old cell size. */ @@ -1283,7 +1283,7 @@ layout_spread_cell(struct window *w, struct layout_cell *parent) number++; if (number <= 1) return (0); - status = options_get_number(w->options, "pane-border-status"); + status = window_get_pane_status(w); if (parent->type == LAYOUT_LEFTRIGHT) size = parent->sx; diff --git a/usr.bin/tmux/screen-redraw.c b/usr.bin/tmux/screen-redraw.c index e7ce2ac680e..a3116603ebf 100644 --- a/usr.bin/tmux/screen-redraw.c +++ b/usr.bin/tmux/screen-redraw.c @@ -1,4 +1,4 @@ -/* $OpenBSD: screen-redraw.c,v 1.133 2026/06/10 14:51:20 nicm Exp $ */ +/* $OpenBSD: screen-redraw.c,v 1.134 2026/06/14 19:31:37 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -774,7 +774,6 @@ screen_redraw_set_context(struct client *c, struct screen_redraw_ctx *ctx) struct session *s = c->session; struct options *oo = s->options; struct window *w = s->curw->window; - struct options *wo = w->options; u_int lines; memset(ctx, 0, sizeof *ctx); @@ -787,11 +786,12 @@ screen_redraw_set_context(struct client *c, struct screen_redraw_ctx *ctx) ctx->statustop = 1; ctx->statuslines = lines; - ctx->pane_status = options_get_number(wo, "pane-border-status"); - ctx->pane_lines = options_get_number(wo, "pane-border-lines"); + ctx->pane_status = window_get_pane_status(w); + ctx->pane_lines = options_get_number(w->options, "pane-border-lines"); - ctx->pane_scrollbars = options_get_number(wo, "pane-scrollbars"); - ctx->pane_scrollbars_pos = options_get_number(wo, + ctx->pane_scrollbars = options_get_number(w->options, + "pane-scrollbars"); + ctx->pane_scrollbars_pos = options_get_number(w->options, "pane-scrollbars-position"); tty_window_offset(&c->tty, &ctx->ox, &ctx->oy, &ctx->sx, &ctx->sy); diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c index 3b9b41b480b..ffbed9fd8c5 100644 --- a/usr.bin/tmux/server-client.c +++ b/usr.bin/tmux/server-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: server-client.c,v 1.467 2026/06/11 19:50:23 nicm Exp $ */ +/* $OpenBSD: server-client.c,v 1.468 2026/06/14 19:31:37 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -607,15 +607,14 @@ server_client_check_mouse_in_pane(struct window_pane *wp, int px, int py, u_int *sl_mpos) { struct window *w = wp->window; - struct options *wo = w->options; struct window_pane *fwp; int pane_status, sb, sb_pos, sb_w, sb_pad; int pane_status_line, sl_top, sl_bottom; int bdr_bottom, bdr_top, bdr_left, bdr_right; - sb = options_get_number(wo, "pane-scrollbars"); - sb_pos = options_get_number(wo, "pane-scrollbars-position"); - pane_status = options_get_number(wo, "pane-border-status"); + sb = options_get_number(w->options, "pane-scrollbars"); + sb_pos = options_get_number(w->options, "pane-scrollbars-position"); + pane_status = window_get_pane_status(w); if (window_pane_show_scrollbar(wp, sb)) { sb_w = wp->scrollbar_style.width; @@ -919,8 +918,7 @@ have_event: log_debug("mouse %u,%u on pane %%%u", x, y, wp->id); } else if (loc == KEYC_MOUSE_LOCATION_BORDER) { - sr = window_pane_border_status_get_range(wp, px, - py); + sr = window_pane_status_get_range(wp, px, py); if (sr != NULL) { n = sr->argument; loc = KEYC_MOUSE_LOCATION_CONTROL0 + n; diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h index 49224424137..73bfcc9cff1 100644 --- a/usr.bin/tmux/tmux.h +++ b/usr.bin/tmux/tmux.h @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.h,v 1.1348 2026/06/13 10:32:54 nicm Exp $ */ +/* $OpenBSD: tmux.h,v 1.1349 2026/06/14 19:31:37 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -3472,8 +3472,9 @@ int window_pane_get_bg_control_client(struct window_pane *); int window_get_bg_client(struct window_pane *); enum client_theme window_pane_get_theme(struct window_pane *); void window_pane_send_theme_update(struct window_pane *); -struct style_range *window_pane_border_status_get_range(struct window_pane *, - u_int, u_int); +int window_get_pane_status(struct window *); +struct style_range *window_pane_status_get_range(struct window_pane *, u_int, + u_int); int window_pane_is_floating(struct window_pane *); /* layout.c */ diff --git a/usr.bin/tmux/window.c b/usr.bin/tmux/window.c index a59cc902fcd..b617d884a73 100644 --- a/usr.bin/tmux/window.c +++ b/usr.bin/tmux/window.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window.c,v 1.335 2026/06/11 14:19:59 nicm Exp $ */ +/* $OpenBSD: window.c,v 1.336 2026/06/14 19:31:37 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -627,7 +627,7 @@ window_get_active_at(struct window *w, u_int x, u_int y) int pane_status, xoff, yoff; u_int sx, sy; - pane_status = options_get_number(w->options, "pane-border-status"); + pane_status = window_get_pane_status(w); if (pane_status == PANE_STATUS_TOP) { /* @@ -635,10 +635,12 @@ window_get_active_at(struct window *w, u_int x, u_int y) * bottom border. */ TAILQ_FOREACH(wp, &w->z_index, zentry) { - if (!window_pane_visible(wp) || window_pane_is_floating(wp)) + if (!window_pane_visible(wp) || + window_pane_is_floating(wp)) continue; - window_pane_full_size_offset(wp, &xoff, &yoff, &sx, &sy); + window_pane_full_size_offset(wp, &xoff, &yoff, &sx, + &sy); if ((int)x < xoff || x > xoff + sx) continue; if ((int)y == yoff - 1) @@ -685,7 +687,7 @@ window_find_string(struct window *w, const char *s) x = w->sx / 2; y = w->sy / 2; - status = options_get_number(w->options, "pane-border-status"); + status = window_get_pane_status(w); if (status == PANE_STATUS_TOP) top++; else if (status == PANE_STATUS_BOTTOM) @@ -1544,7 +1546,7 @@ window_pane_find_up(struct window_pane *wp) if (wp == NULL) return (NULL); w = wp->window; - status = options_get_number(w->options, "pane-border-status"); + status = window_get_pane_status(w); list = NULL; size = 0; @@ -1605,7 +1607,7 @@ window_pane_find_down(struct window_pane *wp) if (wp == NULL) return (NULL); w = wp->window; - status = options_get_number(w->options, "pane-border-status"); + status = window_get_pane_status(w); list = NULL; size = 0; @@ -2121,21 +2123,19 @@ window_pane_send_theme_update(struct window_pane *wp) } struct style_range * -window_pane_border_status_get_range(struct window_pane *wp, u_int x, u_int y) +window_pane_status_get_range(struct window_pane *wp, u_int x, u_int y) { struct style_ranges *srs; struct window *w; - struct options *wo; u_int line; int pane_status; if (wp == NULL) return (NULL); w = wp->window; - wo = w->options; srs = &wp->border_status_line.ranges; - pane_status = options_get_number(wo, "pane-border-status"); + pane_status = window_get_pane_status(w); if (pane_status == PANE_STATUS_TOP) line = wp->yoff - 1; else if (pane_status == PANE_STATUS_BOTTOM) @@ -2150,6 +2150,12 @@ window_pane_border_status_get_range(struct window_pane *wp, u_int x, u_int y) return (style_ranges_get_range(srs, x - wp->xoff - 2)); } +int +window_get_pane_status(struct window *w) +{ + return (options_get_number(w->options, "pane-border-status")); +} + int window_pane_is_floating(struct window_pane *wp) {