version 1.272, 2021/06/10 07:33:41 |
version 1.273, 2021/08/11 20:49:55 |
|
|
return (1); |
return (1); |
} |
} |
|
|
|
static int |
|
window_pane_get_palette(struct window_pane *wp, int c) |
|
{ |
|
if (wp == NULL) |
|
return (-1); |
|
return (colour_palette_get(&wp->palette, c)); |
|
} |
|
|
void |
void |
window_redraw_active_switch(struct window *w, struct window_pane *wp) |
window_redraw_active_switch(struct window *w, struct window_pane *wp) |
{ |
{ |
|
|
|
|
wp->fd = -1; |
wp->fd = -1; |
|
|
wp->fg = 8; |
|
wp->bg = 8; |
|
|
|
TAILQ_INIT(&wp->modes); |
TAILQ_INIT(&wp->modes); |
|
|
TAILQ_INIT (&wp->resize_queue); |
TAILQ_INIT (&wp->resize_queue); |
|
|
|
|
wp->pipe_fd = -1; |
wp->pipe_fd = -1; |
|
|
|
colour_palette_init(&wp->palette); |
screen_init(&wp->base, sx, sy, hlimit); |
screen_init(&wp->base, sx, sy, hlimit); |
wp->screen = &wp->base; |
wp->screen = &wp->base; |
|
|
|
|
free((void *)wp->cwd); |
free((void *)wp->cwd); |
free(wp->shell); |
free(wp->shell); |
cmd_free_argv(wp->argc, wp->argv); |
cmd_free_argv(wp->argc, wp->argv); |
free(wp->palette); |
colour_palette_free(&wp->palette); |
free(wp); |
free(wp); |
} |
} |
|
|
|
|
|
|
wp->event = bufferevent_new(wp->fd, window_pane_read_callback, |
wp->event = bufferevent_new(wp->fd, window_pane_read_callback, |
NULL, window_pane_error_callback, wp); |
NULL, window_pane_error_callback, wp); |
wp->ictx = input_init(wp, wp->event); |
wp->ictx = input_init(wp, wp->event, &wp->palette); |
|
|
bufferevent_enable(wp->event, EV_READ|EV_WRITE); |
bufferevent_enable(wp->event, EV_READ|EV_WRITE); |
} |
} |
|
|
wme = TAILQ_FIRST(&wp->modes); |
wme = TAILQ_FIRST(&wp->modes); |
if (wme != NULL && wme->mode->resize != NULL) |
if (wme != NULL && wme->mode->resize != NULL) |
wme->mode->resize(wme, sx, sy); |
wme->mode->resize(wme, sx, sy); |
} |
|
|
|
void |
|
window_pane_set_palette(struct window_pane *wp, u_int n, int colour) |
|
{ |
|
if (n > 0xff) |
|
return; |
|
|
|
if (wp->palette == NULL) |
|
wp->palette = xcalloc(0x100, sizeof *wp->palette); |
|
|
|
wp->palette[n] = colour; |
|
wp->flags |= PANE_REDRAW; |
|
} |
|
|
|
void |
|
window_pane_unset_palette(struct window_pane *wp, u_int n) |
|
{ |
|
if (n > 0xff || wp->palette == NULL) |
|
return; |
|
|
|
wp->palette[n] = 0; |
|
wp->flags |= PANE_REDRAW; |
|
} |
|
|
|
void |
|
window_pane_reset_palette(struct window_pane *wp) |
|
{ |
|
if (wp->palette == NULL) |
|
return; |
|
|
|
free(wp->palette); |
|
wp->palette = NULL; |
|
wp->flags |= PANE_REDRAW; |
|
} |
|
|
|
int |
|
window_pane_get_palette(struct window_pane *wp, int c) |
|
{ |
|
int new; |
|
|
|
if (wp == NULL || wp->palette == NULL) |
|
return (-1); |
|
|
|
new = -1; |
|
if (c < 8) |
|
new = wp->palette[c]; |
|
else if (c >= 90 && c <= 97) |
|
new = wp->palette[8 + c - 90]; |
|
else if (c & COLOUR_FLAG_256) |
|
new = wp->palette[c & ~COLOUR_FLAG_256]; |
|
if (new == 0) |
|
return (-1); |
|
return (new); |
|
} |
} |
|
|
int |
int |