summaryrefslogtreecommitdiffstats
path: root/popup.c
diff options
context:
space:
mode:
authornicm <nicm>2021-10-13 09:28:36 +0000
committernicm <nicm>2021-10-13 09:28:36 +0000
commit837ca176d1874273f3de615c75b506e1b1787a1b (patch)
treec219d8f8cf7399437e4285d713735991636b82cb /popup.c
parentb8581ec80e5339be5e2c08cfec70a77f21ba06b2 (diff)
Add popup-style and popup-border-style options, from Alexis Hildebrandt
in GitHub issue 2927.
Diffstat (limited to 'popup.c')
-rw-r--r--popup.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/popup.c b/popup.c
index 106e4ee5..5eea46ef 100644
--- a/popup.c
+++ b/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;