mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
render: only apply alpha when we’re using the default bg for background
In all other cases, alpha is disabled. This includes: * Palette- or RGB-colors matching the default background color * When any kind of reverse video is enabled (e.g. DECSCNM, or ANSI reverse)
This commit is contained in:
parent
107825ef29
commit
b4c99f873f
2 changed files with 8 additions and 4 deletions
|
|
@ -57,6 +57,8 @@
|
|||
to launch (e.g. bad command line option) and -26/230 when the foot
|
||||
server failed to instantiate a new window
|
||||
(https://codeberg.org/dnkl/foot/issues/466).
|
||||
* Background alpha no longer applied to palette or RGB colors that
|
||||
matches the background color.
|
||||
|
||||
|
||||
### Deprecated
|
||||
|
|
|
|||
10
render.c
10
render.c
|
|
@ -429,6 +429,8 @@ render_cell(struct terminal *term, pixman_image_t *pix,
|
|||
uint32_t _fg = 0;
|
||||
uint32_t _bg = 0;
|
||||
|
||||
bool apply_alpha = false;
|
||||
|
||||
if (is_selected && term->colors.use_custom_selection) {
|
||||
_fg = term->colors.selection_fg;
|
||||
_bg = term->colors.selection_bg;
|
||||
|
|
@ -441,12 +443,14 @@ render_cell(struct terminal *term, pixman_image_t *pix,
|
|||
uint32_t swap = _fg;
|
||||
_fg = _bg;
|
||||
_bg = swap;
|
||||
}
|
||||
} else
|
||||
apply_alpha = !cell->attrs.have_bg;
|
||||
}
|
||||
|
||||
if (unlikely(is_selected && _fg == _bg)) {
|
||||
/* Invert bg when selected/highlighted text has same fg/bg */
|
||||
_bg = ~_bg;
|
||||
apply_alpha = false;
|
||||
}
|
||||
|
||||
if (cell->attrs.dim)
|
||||
|
|
@ -459,9 +463,7 @@ render_cell(struct terminal *term, pixman_image_t *pix,
|
|||
|
||||
pixman_color_t fg = color_hex_to_pixman(_fg);
|
||||
pixman_color_t bg = color_hex_to_pixman_with_alpha(
|
||||
_bg,
|
||||
(_bg == (term->reverse ? term->colors.fg : term->colors.bg)
|
||||
? term->colors.alpha : 0xffff));
|
||||
_bg, apply_alpha ? term->colors.alpha : 0xffff);
|
||||
|
||||
if (term->is_searching && !is_selected) {
|
||||
color_dim_for_search(&fg);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue