Merge branch 'no-underlines-below-cell'

Closes #503
This commit is contained in:
Daniel Eklöf 2021-05-12 20:10:58 +02:00
commit 4ed545f4d8
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 10 additions and 2 deletions

View file

@ -75,8 +75,10 @@
### Deprecated ### Deprecated
* **bell** option in `foot.ini`; set actions in **[bell]** section instead. * **bell** option in `foot.ini`; set actions in **[bell]** section instead.
### Removed ### Removed
* Buffer damage quirk for Plasma/KWin. * Buffer damage quirk for Plasma/KWin.
@ -93,6 +95,9 @@
(https://codeberg.org/dnkl/foot/issues/495). (https://codeberg.org/dnkl/foot/issues/495).
* Assertion when emitting a sixel occupying the entire scrollback * Assertion when emitting a sixel occupying the entire scrollback
history (https://codeberg.org/dnkl/foot/issues/494). history (https://codeberg.org/dnkl/foot/issues/494).
* Font underlines being positioned below the cell (and thus being
invisible) for certain combinations of fonts and font sizes
(https://codeberg.org/dnkl/foot/issues/503).
### Security ### Security

View file

@ -317,11 +317,14 @@ draw_underline(const struct terminal *term, pixman_image_t *pix,
const struct fcft_font *font, const struct fcft_font *font,
const pixman_color_t *color, int x, int y, int cols) const pixman_color_t *color, int x, int y, int cols)
{ {
/* Make sure the line isn't positioned below the cell */
int y_ofs = font_baseline(term) - font->underline.position;
y_ofs = min(y_ofs, term->cell_height - font->underline.thickness);
pixman_image_fill_rectangles( pixman_image_fill_rectangles(
PIXMAN_OP_SRC, pix, color, PIXMAN_OP_SRC, pix, color,
1, &(pixman_rectangle16_t){ 1, &(pixman_rectangle16_t){
x, y + font_baseline(term) - font->underline.position, x, y + y_ofs, cols * term->cell_width, font->underline.thickness});
cols * term->cell_width, font->underline.thickness});
} }
static void static void