mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Add popup-style and popup-border-style options, from Alexis Hildebrandt
in GitHub issue 2927.
This commit is contained in:
14
popup.c
14
popup.c
@ -212,16 +212,22 @@ popup_draw_cb(struct client *c, void *data, struct screen_redraw_ctx *rctx)
|
||||
u_int i, px = pd->px, py = pd->py;
|
||||
struct colour_palette *palette = &pd->palette;
|
||||
struct grid_cell gc;
|
||||
struct grid_cell bgc;
|
||||
struct options *o = c->session->curw->window->options;
|
||||
|
||||
screen_init(&s, pd->sx, pd->sy, 0);
|
||||
screen_write_start(&ctx, &s);
|
||||
screen_write_clearscreen(&ctx, 8);
|
||||
|
||||
memcpy(&bgc, &grid_default_cell, sizeof bgc);
|
||||
style_apply(&bgc, o, "popup-border-style", NULL);
|
||||
bgc.attr = 0;
|
||||
|
||||
if (pd->flags & POPUP_NOBORDER) {
|
||||
screen_write_cursormove(&ctx, 0, 0, 0);
|
||||
screen_write_fast_copy(&ctx, &pd->s, 0, 0, pd->sx, pd->sy);
|
||||
} else if (pd->sx > 2 && pd->sy > 2) {
|
||||
screen_write_box(&ctx, pd->sx, pd->sy);
|
||||
screen_write_box(&ctx, pd->sx, pd->sy, &bgc);
|
||||
screen_write_cursormove(&ctx, 1, 1, 0);
|
||||
screen_write_fast_copy(&ctx, &pd->s, 0, 0, pd->sx - 2,
|
||||
pd->sy - 2);
|
||||
@ -229,8 +235,10 @@ popup_draw_cb(struct client *c, void *data, struct screen_redraw_ctx *rctx)
|
||||
screen_write_stop(&ctx);
|
||||
|
||||
memcpy(&gc, &grid_default_cell, sizeof gc);
|
||||
gc.fg = pd->palette.fg;
|
||||
gc.bg = pd->palette.bg;
|
||||
style_apply(&gc, o, "popup-style", NULL);
|
||||
gc.attr = 0;
|
||||
palette->fg = gc.fg;
|
||||
palette->bg = gc.bg;
|
||||
|
||||
if (pd->md != NULL) {
|
||||
c->overlay_check = menu_check_cb;
|
||||
|
Reference in New Issue
Block a user