=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/popup.c,v retrieving revision 1.24 retrieving revision 1.25 diff -c -r1.24 -r1.25 *** src/usr.bin/tmux/popup.c 2021/08/05 09:43:51 1.24 --- src/usr.bin/tmux/popup.c 2021/08/11 20:49:55 1.25 *************** *** 1,4 **** ! /* $OpenBSD: popup.c,v 1.24 2021/08/05 09:43:51 nicm Exp $ */ /* * Copyright (c) 2020 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: popup.c,v 1.25 2021/08/11 20:49:55 nicm Exp $ */ /* * Copyright (c) 2020 Nicholas Marriott *************** *** 33,38 **** --- 33,39 ---- int flags; struct screen s; + struct colour_palette palette; struct job *job; struct input_ctx *ictx; int status; *************** *** 101,106 **** --- 102,108 ---- { struct popup_data *pd = ctx->arg; + ttyctx->palette = &pd->palette; ttyctx->redraw_cb = popup_redraw_cb; ttyctx->set_client_cb = popup_set_client_cb; ttyctx->arg = pd; *************** *** 136,141 **** --- 138,145 ---- struct screen s; struct screen_write_ctx ctx; u_int i, px = pd->px, py = pd->py; + struct colour_palette *palette = &pd->palette; + struct grid_cell gc; screen_init(&s, pd->sx, pd->sy, 0); screen_write_start(&ctx, &s); *************** *** 150,160 **** } screen_write_stop(&ctx); c->overlay_check = NULL; ! for (i = 0; i < pd->sy; i++){ ! tty_draw_line(tty, &s, 0, i, pd->sx, px, py + i, ! &grid_default_cell, NULL); ! } c->overlay_check = popup_check_cb; } --- 154,166 ---- } screen_write_stop(&ctx); + memcpy(&gc, &grid_default_cell, sizeof gc); + gc.fg = pd->palette.fg; + gc.bg = pd->palette.bg; + c->overlay_check = NULL; ! for (i = 0; i < pd->sy; i++) ! tty_draw_line(tty, &s, 0, i, pd->sx, px, py + i, &gc, palette); c->overlay_check = popup_check_cb; } *************** *** 180,185 **** --- 186,192 ---- input_free(pd->ictx); screen_free(&pd->s); + colour_palette_free(&pd->palette); free(pd); } *************** *** 389,394 **** --- 396,403 ---- pd->status = 128 + SIGHUP; screen_init(&pd->s, sx - 2, sy - 2, 0); + colour_palette_init(&pd->palette); + colour_palette_from_option(&pd->palette, global_w_options); pd->px = px; pd->py = py; *************** *** 403,409 **** pd->job = job_run(shellcmd, argc, argv, s, cwd, popup_job_update_cb, popup_job_complete_cb, NULL, pd, JOB_NOWAIT|JOB_PTY|JOB_KEEPWRITE, pd->sx - 2, pd->sy - 2); ! pd->ictx = input_init(NULL, job_get_event(pd->job)); server_client_set_overlay(c, 0, popup_check_cb, popup_mode_cb, popup_draw_cb, popup_key_cb, popup_free_cb, popup_resize_cb, pd); --- 412,418 ---- pd->job = job_run(shellcmd, argc, argv, s, cwd, popup_job_update_cb, popup_job_complete_cb, NULL, pd, JOB_NOWAIT|JOB_PTY|JOB_KEEPWRITE, pd->sx - 2, pd->sy - 2); ! pd->ictx = input_init(NULL, job_get_event(pd->job), &pd->palette); server_client_set_overlay(c, 0, popup_check_cb, popup_mode_cb, popup_draw_cb, popup_key_cb, popup_free_cb, popup_resize_cb, pd);