diff options
author | nicm <nicm> | 2021-10-13 09:28:36 +0000 |
---|---|---|
committer | nicm <nicm> | 2021-10-13 09:28:36 +0000 |
commit | 837ca176d1874273f3de615c75b506e1b1787a1b (patch) | |
tree | c219d8f8cf7399437e4285d713735991636b82cb /popup.c | |
parent | b8581ec80e5339be5e2c08cfec70a77f21ba06b2 (diff) | |
download | rtmux-837ca176d1874273f3de615c75b506e1b1787a1b.tar.gz rtmux-837ca176d1874273f3de615c75b506e1b1787a1b.tar.bz2 rtmux-837ca176d1874273f3de615c75b506e1b1787a1b.zip |
Add popup-style and popup-border-style options, from Alexis Hildebrandt
in GitHub issue 2927.
Diffstat (limited to 'popup.c')
-rw-r--r-- | popup.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -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; |