kitty/kitty_tests
Strykar fbd4e5ad1f
freetype: do not apply the fontconfig size-fixup matrix to color glyphs
ee937bdd1b routed FC_MATRIX through the cairo font matrix so synthetic
slant reaches color glyphs. But FC_MATRIX is also how fontconfig encodes
the pixel-size fixup of fixed-size faces. Noto Color Emoji is a ~109px
bitmap strike and fontconfig hands consumers a matrix scaling it to the
requested size (factor = requested_px / strike_px). cairo_set_font_size()
already brings the strike to the requested size, so feeding that matrix
into cairo_set_font_matrix() in apply_cairo_font_size() scales it down
again by the fixup factor. At terminal cell sizes that is a large shrink,
up to ~9x for small cells (easing to 1x as the cell nears the strike), so
color emoji render as a dot; fit_cairo_glyph() only shrinks, so it never
grows them back.

Only the shear carries synthetic slant; the diagonal is the size, which
cairo_set_font_size() and fit_cairo_glyph() already handle. Apply only
the shear and fall through to cairo_set_font_size() when there is no
shear. Pure-slant matrices are unchanged. This carries only the shear to
color glyphs, so a non-uniform diagonal scale from a hand-built FC_MATRIX
is dropped on that path; the stock fixup is uniform, so dropping it is
the intended behaviour.

Add a regression test that renders a color emoji and checks it fills its
cells, skipped unless a fixed-size color font with a fontconfig fixup
matrix is present.

Fixes #10144
2026-06-14 15:14:04 +05:30
..
__init__.py More work on dnd kitten 2026-05-11 21:51:23 +05:30
atexit.py Add integration test for go atexit implementation 2025-09-30 12:37:25 +05:30
CascadiaCode-Regular.otf
check_build.py Cleanup previous PR 2026-03-15 08:38:59 +05:30
clipboard.py Fix a regression that broke writing to the clipboard using the OSC 5522 protocol 2024-09-15 08:42:50 +05:30
ComfyCode-Regular.ttf Add shaping tests for ligature cases and bundle Comfy Code 2026-04-25 19:43:17 +08:00
command_palette.py Add alias and combine support to the command palette 2026-04-06 09:45:39 -07:00
completion.py remove leftover debug prints 2025-07-20 21:45:36 +05:30
crypto.py
datatypes.py Cleanup previous PR 2026-04-28 16:57:14 +05:30
dnd.py fix drop_update_mimes: use exact MIME matching and correct sentinel value 2026-05-17 16:45:07 +00:00
dnd_kitten.py Add data URI support to dnd kitten parse_uri_list 2026-05-18 07:54:57 +00:00
file_transmission.py tests: apply os.utime to created symlinks too 2024-10-03 23:09:28 -04:00
FiraCode-Medium.otf
fonts.py freetype: do not apply the fontconfig size-fixup matrix to color glyphs 2026-06-14 15:14:04 +05:30
glfw.py
gr.py
GraphemeBreakTest.json Add support for Unicode 17 2025-10-18 09:59:53 +05:30
graphics.py dd basic drag thumbnail support to dnd kitten 2026-05-03 22:18:18 +05:30
iosevka-regular.ttf
keys.py Preserve copy_or_noop passthrough 2026-05-20 11:15:49 +05:00
layout.py Add tests for splits layout serialization 2026-06-10 07:41:02 +05:30
LiberationMono-Regular.ttf
main.py Bump python version in CI 2026-04-19 21:35:13 +05:30
mouse.py Fix double-click word selection not extending beyond viewport edges 2026-04-07 09:49:50 +00:00
multicell.py Fix crash in overlay line drawing on uninitialized linebuf view 2026-04-18 13:10:07 +08:00
notifications.py Ensure temp files and other resources are cleaned up even if kitty crashes or is SIGKILLed 2025-01-05 12:51:59 +05:30
open_actions.py
options.py pep8 2026-04-24 10:42:25 +05:30
panels.py ... 2025-05-03 10:47:03 +05:30
parser.py Add parse test for CSI 14;2 t 2025-11-24 11:23:21 +05:30
screen.py Merge branch 'decst8c' of https://github.com/aymanbagabas/kitty 2026-05-27 08:38:45 +05:30
search_query_parser.py
shell_integration.py Make detection of command line flags that prevent sudo from overriding TERMINFO more robust 2026-05-05 09:38:07 +05:30
shm.py
ssh.py Avoid shell quoting in ssh login fallback 2026-05-19 23:14:08 +05:00
tui.py
twemoji_smiley-cff2_colr_1.otf Add basic colrv1 rendering test 2025-02-03 11:06:41 +05:30
utmp.py