mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-04 04:06:06 -05:00
sixel: don’t *ever* shrink image below its SRA size
If the image was accompanied with a “Set Raster Attributes” (SRA) command, make sure we *never* shrink the image below the size specified in the SRA. Images are normally shrunk when their bottom rows are fully transparent. This enables sixels that aren’t a multiple of 6 to be emitted, without also emitting an SRA command. But if there *is* an SRA command, obey it. Verified against XTerm-367
This commit is contained in:
parent
92e517ae34
commit
e0f1a4ae33
2 changed files with 8 additions and 6 deletions
|
|
@ -101,6 +101,8 @@
|
|||
* 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).
|
||||
* Sixels with transparent bottom border being resized below the size
|
||||
specified in _”Set Raster Attributes”_.
|
||||
|
||||
|
||||
### Security
|
||||
|
|
|
|||
12
sixel.c
12
sixel.c
|
|
@ -816,7 +816,8 @@ sixel_unhook(struct terminal *term)
|
|||
xassert(image.rows <= term->grid->num_rows);
|
||||
xassert(image.pos.row + image.rows - 1 < term->grid->num_rows);
|
||||
|
||||
LOG_DBG("generating %dx%d pixman image at %d-%d",
|
||||
LOG_DBG("generating %s %dx%d pixman image at %d-%d",
|
||||
image.opaque ? "opaque" : "transparent",
|
||||
image.width, image.height,
|
||||
image.pos.row, image.pos.row + image.rows);
|
||||
|
||||
|
|
@ -1195,11 +1196,10 @@ decgra(struct terminal *term, uint8_t c)
|
|||
ph <= term->sixel.max_height && pv <= term->sixel.max_width)
|
||||
{
|
||||
resize(term, ph, pv);
|
||||
if (!term->sixel.transparent_bg) {
|
||||
/* This ensures the sixel’s final image size is *at
|
||||
* least* this large */
|
||||
term->sixel.max_non_empty_row_no = pv - 1;
|
||||
}
|
||||
|
||||
/* This ensures the sixel’s final image size is *at least*
|
||||
* this large */
|
||||
term->sixel.max_non_empty_row_no = pv - 1;
|
||||
}
|
||||
|
||||
term->sixel.state = SIXEL_DECSIXEL;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue