mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Merge branch 'obsd-master'
This commit is contained in:
@ -719,7 +719,7 @@ format_draw(struct screen_write_ctx *octx, const struct grid_cell *base,
|
|||||||
int focus_start = -1, focus_end = -1;
|
int focus_start = -1, focus_end = -1;
|
||||||
int list_state = -1, fill = -1, even;
|
int list_state = -1, fill = -1, even;
|
||||||
enum style_align list_align = STYLE_ALIGN_DEFAULT;
|
enum style_align list_align = STYLE_ALIGN_DEFAULT;
|
||||||
struct grid_cell gc, current_default;
|
struct grid_cell gc, current_default, base_default;
|
||||||
struct style sy, saved_sy;
|
struct style sy, saved_sy;
|
||||||
struct utf8_data *ud = &sy.gc.data;
|
struct utf8_data *ud = &sy.gc.data;
|
||||||
const char *cp, *end;
|
const char *cp, *end;
|
||||||
@ -729,7 +729,9 @@ format_draw(struct screen_write_ctx *octx, const struct grid_cell *base,
|
|||||||
struct format_ranges frs;
|
struct format_ranges frs;
|
||||||
struct style_range *sr;
|
struct style_range *sr;
|
||||||
|
|
||||||
|
memcpy(&base_default, base, sizeof base_default);
|
||||||
memcpy(¤t_default, base, sizeof current_default);
|
memcpy(¤t_default, base, sizeof current_default);
|
||||||
|
base = &base_default;
|
||||||
style_set(&sy, ¤t_default);
|
style_set(&sy, ¤t_default);
|
||||||
TAILQ_INIT(&frs);
|
TAILQ_INIT(&frs);
|
||||||
log_debug("%s: %s", __func__, expanded);
|
log_debug("%s: %s", __func__, expanded);
|
||||||
@ -847,6 +849,12 @@ format_draw(struct screen_write_ctx *octx, const struct grid_cell *base,
|
|||||||
} else if (sy.default_type == STYLE_DEFAULT_POP) {
|
} else if (sy.default_type == STYLE_DEFAULT_POP) {
|
||||||
memcpy(¤t_default, base, sizeof current_default);
|
memcpy(¤t_default, base, sizeof current_default);
|
||||||
sy.default_type = STYLE_DEFAULT_BASE;
|
sy.default_type = STYLE_DEFAULT_BASE;
|
||||||
|
} else if (sy.default_type == STYLE_DEFAULT_SET) {
|
||||||
|
memcpy(&base_default, &saved_sy.gc,
|
||||||
|
sizeof base_default);
|
||||||
|
memcpy(¤t_default, &saved_sy.gc,
|
||||||
|
sizeof current_default);
|
||||||
|
sy.default_type = STYLE_DEFAULT_BASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check the list state. */
|
/* Check the list state. */
|
||||||
|
@ -121,7 +121,12 @@ screen_redraw_pane_border(struct screen_redraw_ctx *ctx, struct window_pane *wp,
|
|||||||
u_int ex = wp->xoff + wp->sx, ey = wp->yoff + wp->sy;
|
u_int ex = wp->xoff + wp->sx, ey = wp->yoff + wp->sy;
|
||||||
int hsplit = 0, vsplit = 0, pane_status = ctx->pane_status;
|
int hsplit = 0, vsplit = 0, pane_status = ctx->pane_status;
|
||||||
int pane_scrollbars = ctx->pane_scrollbars, sb_w = 0;
|
int pane_scrollbars = ctx->pane_scrollbars, sb_w = 0;
|
||||||
int sb_pos = ctx->pane_scrollbars_pos;
|
int sb_pos;
|
||||||
|
|
||||||
|
if (pane_scrollbars != 0)
|
||||||
|
sb_pos = ctx->pane_scrollbars_pos;
|
||||||
|
else
|
||||||
|
sb_pos = 0;
|
||||||
|
|
||||||
/* Inside pane. */
|
/* Inside pane. */
|
||||||
if (px >= wp->xoff && px < ex && py >= wp->yoff && py < ey)
|
if (px >= wp->xoff && px < ex && py >= wp->yoff && py < ey)
|
||||||
@ -149,16 +154,24 @@ screen_redraw_pane_border(struct screen_redraw_ctx *ctx, struct window_pane *wp,
|
|||||||
if (wp->xoff - sb_w == 0 && px == wp->sx + sb_w)
|
if (wp->xoff - sb_w == 0 && px == wp->sx + sb_w)
|
||||||
if (!hsplit || (hsplit && py <= wp->sy / 2))
|
if (!hsplit || (hsplit && py <= wp->sy / 2))
|
||||||
return (SCREEN_REDRAW_BORDER_RIGHT);
|
return (SCREEN_REDRAW_BORDER_RIGHT);
|
||||||
if (wp->xoff - sb_w != 0 && px == wp->xoff - sb_w - 1)
|
if (wp->xoff - sb_w != 0) {
|
||||||
if (!hsplit || (hsplit && py > wp->sy / 2))
|
if (px == wp->xoff - sb_w - 1 &&
|
||||||
|
(!hsplit || (hsplit && py > wp->sy / 2)))
|
||||||
return (SCREEN_REDRAW_BORDER_LEFT);
|
return (SCREEN_REDRAW_BORDER_LEFT);
|
||||||
} else { /* sb_pos == PANE_SCROLLBARS_RIGHT */
|
if (px == wp->xoff + wp->sx + sb_w - 1)
|
||||||
|
return (SCREEN_REDRAW_BORDER_RIGHT);
|
||||||
|
}
|
||||||
|
} else { /* sb_pos == PANE_SCROLLBARS_RIGHT or disabled*/
|
||||||
if (wp->xoff == 0 && px == wp->sx + sb_w)
|
if (wp->xoff == 0 && px == wp->sx + sb_w)
|
||||||
if (!hsplit || (hsplit && py <= wp->sy / 2))
|
if (!hsplit || (hsplit && py <= wp->sy / 2))
|
||||||
return (SCREEN_REDRAW_BORDER_RIGHT);
|
return (SCREEN_REDRAW_BORDER_RIGHT);
|
||||||
if (wp->xoff != 0 && px == wp->xoff - 1)
|
if (wp->xoff != 0) {
|
||||||
if (!hsplit || (hsplit && py > wp->sy / 2))
|
if (px == wp->xoff - 1 &&
|
||||||
|
(!hsplit || (hsplit && py > wp->sy / 2)))
|
||||||
return (SCREEN_REDRAW_BORDER_LEFT);
|
return (SCREEN_REDRAW_BORDER_LEFT);
|
||||||
|
if (px == wp->xoff + wp->sx + sb_w)
|
||||||
|
return (SCREEN_REDRAW_BORDER_RIGHT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
style.c
4
style.c
@ -98,6 +98,8 @@ style_parse(struct style *sy, const struct grid_cell *base, const char *in)
|
|||||||
sy->default_type = STYLE_DEFAULT_PUSH;
|
sy->default_type = STYLE_DEFAULT_PUSH;
|
||||||
else if (strcasecmp(tmp, "pop-default") == 0)
|
else if (strcasecmp(tmp, "pop-default") == 0)
|
||||||
sy->default_type = STYLE_DEFAULT_POP;
|
sy->default_type = STYLE_DEFAULT_POP;
|
||||||
|
else if (strcasecmp(tmp, "set-default") == 0)
|
||||||
|
sy->default_type = STYLE_DEFAULT_SET;
|
||||||
else if (strcasecmp(tmp, "nolist") == 0)
|
else if (strcasecmp(tmp, "nolist") == 0)
|
||||||
sy->list = STYLE_LIST_OFF;
|
sy->list = STYLE_LIST_OFF;
|
||||||
else if (strncasecmp(tmp, "list=", 5) == 0) {
|
else if (strncasecmp(tmp, "list=", 5) == 0) {
|
||||||
@ -310,6 +312,8 @@ style_tostring(struct style *sy)
|
|||||||
tmp = "push-default";
|
tmp = "push-default";
|
||||||
else if (sy->default_type == STYLE_DEFAULT_POP)
|
else if (sy->default_type == STYLE_DEFAULT_POP)
|
||||||
tmp = "pop-default";
|
tmp = "pop-default";
|
||||||
|
else if (sy->default_type == STYLE_DEFAULT_SET)
|
||||||
|
tmp = "set-default";
|
||||||
off += xsnprintf(s + off, sizeof s - off, "%s%s", comma, tmp);
|
off += xsnprintf(s + off, sizeof s - off, "%s%s", comma, tmp);
|
||||||
comma = ",";
|
comma = ",";
|
||||||
}
|
}
|
||||||
|
4
tmux.1
4
tmux.1
@ -6359,6 +6359,10 @@ will be available in the
|
|||||||
format variable.
|
format variable.
|
||||||
.Ql X
|
.Ql X
|
||||||
must be at most 15 bytes in length.
|
must be at most 15 bytes in length.
|
||||||
|
.It Ic set-default
|
||||||
|
Set the current colours and attributes as the default, overwriting any previous
|
||||||
|
default.
|
||||||
|
The previous default cannot be restored.
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
Examples are:
|
Examples are:
|
||||||
|
3
tmux.h
3
tmux.h
@ -890,7 +890,8 @@ TAILQ_HEAD(style_ranges, style_range);
|
|||||||
enum style_default_type {
|
enum style_default_type {
|
||||||
STYLE_DEFAULT_BASE,
|
STYLE_DEFAULT_BASE,
|
||||||
STYLE_DEFAULT_PUSH,
|
STYLE_DEFAULT_PUSH,
|
||||||
STYLE_DEFAULT_POP
|
STYLE_DEFAULT_POP,
|
||||||
|
STYLE_DEFAULT_SET
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Style option. */
|
/* Style option. */
|
||||||
|
Reference in New Issue
Block a user