summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* docs: Small additionnewer-fontconfigMatthias Clasen2021-11-101-3/+3
| | | | Mention new attribute values in markup docs.
* Merge branch 'newer-fontconfig' into 'main'Matthias Clasen2021-11-094-30/+17
|\ | | | | | | | | Bump fontconfig dep to 2.13.0 See merge request GNOME/pango!499
| * fc: Drop unnecessary ifdefsMatthias Clasen2021-11-083-29/+16
| | | | | | | | We are requiring a new enough fontconfig now.
| * Bump fontconfig dep to 2.13.0Matthias Clasen2021-11-081-1/+1
| | | | | | | | | | This version of fontconfig has all the API we are using, and was released in 2018.
* | Merge branch 'set-ptem' into 'main'Matthias Clasen2021-11-091-21/+20
|\ \ | |/ |/| | | | | Call hb_font_set_ptem when creating fonts See merge request GNOME/pango!498
| * Call hb_font_set_ptem when creating fontsset-ptemMatthias Clasen2021-11-081-21/+20
|/ | | | | This is useful information for Harfbuzz to have, so pass it along.
* Update docsMatthias Clasen2021-11-081-1/+2
| | | | Add the new variant values to the docs.
* 1.49.31.49.3Matthias Clasen2021-11-082-1/+9
|
* Merge branch 'small-caps' into 'main'Matthias Clasen2021-11-0812-170/+661
|\ | | | | | | | | Emulate Small Caps if not available from the font See merge request GNOME/pango!497
| * itemize: Handle text transformssmall-capsMatthias Clasen2021-11-081-17/+70
| | | | | | | | | | | | Take text transforms into account when emulating Small Caps. This requires us to have log attrs to determine word starts.
| * Reshuffle itemize APIMatthias Clasen2021-11-083-31/+59
| | | | | | | | | | | | | | | | | | | | | | Split the post-processing off into a separate function that can take log attrs in addition. This will allow us to handle word starts when dealing with text transforms for emulated Small Caps. So far, this is all private API that is used from PangoLayout. Please file an issue if you want to access Small Caps emulation without PangoLayout.
| * Cosmetics: Add the right sectionMatthias Clasen2021-11-071-1/+4
| | | | | | | | Move private API out of the 'Public API' section.
| * Reshuffle private headers a bitMatthias Clasen2021-11-073-14/+15
| | | | | | | | pango_itemize_with_font belongs into pango-item-private.h.
| * shape: Be consistent when getting text transformsMatthias Clasen2021-11-071-2/+3
| | | | | | | | We want last-one-wins semantics here.
| * itemize: Emulate other casing variantsMatthias Clasen2021-11-071-67/+130
| | | | | | | | | | | | | | | | | | | | | | | | When we detect that one of the other casing variants is requested, but not available via OpenType font features, emulate it by splitting the item into lowercase and uppercase runs and apply a suitable font scale and text transform to the runs to get the desired effect. Still to do: resolve conflics with preexisting text transform attributes.
| * Add variant roundtrip testsMatthias Clasen2021-11-071-4/+42
| | | | | | | | | | | | Test some more tests for roundtripping casing variants from font description to font and back.
| * fc: Implement the other casing variantsMatthias Clasen2021-11-071-5/+66
| | | | | | | | | | | | Pass all the PangoVariant values through the FcPattern by translating them into suitable OpenType features in the pattern.
| * Add more casing variantsMatthias Clasen2021-11-072-3/+30
| | | | | | | | | | Add values for all the css casing variants to the PangoVariant enum.
| * itemize: Implement emulated Small CapsMatthias Clasen2021-11-071-1/+181
| | | | | | | | | | | | | | | | | | | | | | When we detect that Small Caps are requested, but not available via OpenType font features, emulate Small Caps by splitting the item into lowercase and uppercase runs and add text transform and font scale attributes to the lowercase runs to get the effect of Small Caps. Still to do: resolve conflicts with preexisting text transform attributes.
| * itemize: Break out a helperMatthias Clasen2021-11-071-27/+32
| | | | | | | | | | | | Factor out the 'consider as space' part from the itemization code, so we can reuse it when breaking items into upper- and lowercase runs.
| * itemize: Handle PANGO_FONT_SCALE_SMALL_CAPSMatthias Clasen2021-11-071-17/+39
| | | | | | | | This is not used by anything yet.
| * Add PANGO_FONT_SCALE_SMALL_CAPSMatthias Clasen2021-11-071-1/+3
| | | | | | | | | | This will be used in the implementation of emulated Small Caps.
| * shape: Use the new helperMatthias Clasen2021-11-061-68/+2
| |
| * pango-item: Add a helperMatthias Clasen2021-11-062-0/+73
|/ | | | | | Add a helper function that used to live with the Harfbuzz shaping code in shape.c. It will be used in the itemize code too, in the future.
* Merge branch 'small-caps' into 'main'Matthias Clasen2021-11-062-0/+62
|\ | | | | | | | | fc: Implement PANGO_VARIANT_SMALL_CAPS See merge request GNOME/pango!496
| * Add a test for small capsMatthias Clasen2021-11-051-0/+41
| | | | | | | | | | | | | | Add a test that verifies that PANGO_VARIANT_SMALL_CAPS survives a roundtrip from font description to font and back, and that it shows up in the font as smcp=1 in the OpenType features.
| * fc: Implement PANGO_VARIANT_SMALL_CAPSMatthias Clasen2021-11-051-0/+21
|/ | | | | | | Arrange for PANGO_VARIANT_SMALL_CAPS to be translated into the OpenType feature smcp=1 and back. This makes small caps survive a roundtrip from font description to font and back.
* Merge branch 'advance-transform' into 'main'Matthias Clasen2021-11-051-29/+13
|\ | | | | | | | | | | | | Fix advance widths with transforms Closes #620 See merge request GNOME/pango!495
| * Fix advance widths with transformsadvance-transformMatthias Clasen2021-11-051-29/+13
|/ | | | | | | | | | The hb_font_t we were passing to Harfbuzz for shaping was not taking context transforms into account, and therefore was not scaling advance widths as necessary. Always go through pangos glyph extents to fix this. Fixes: #620
* Merge branch 'more-default-ignorables' into 'main'Matthias Clasen2021-11-031-0/+5
|\ | | | | | | | | Add a few more default-ignorables See merge request GNOME/pango!494
| * Add a few more default-ignorablesmore-default-ignorablesMatthias Clasen2021-11-031-0/+5
|/ | | | | | Add some more directional formatting characters to the list of default-ignorables that we make visible when requested: ALM, LRI, RLI, FSI, PDI.
* Merge branch 'ci-require-macos' into 'main'Matthias Clasen2021-11-022-1/+18
|\ | | | | | | | | Revert "ci: Allow macos to fail" See merge request GNOME/pango!493
| * Revert "ci: Allow macos to fail"ci-require-macosMatthias Clasen2021-11-021-1/+0
| | | | | | | | | | | | This reverts commit e46a0fb53e92f359e739a818f0e0ce0d2fbf6c18. We welcome the macos runner back.
| * Skip a failing test on macOSMatthias Clasen2021-11-021-0/+18
|/ | | | | I can't debug this using just the ci runner, so skip it until somebody can.
* Merge branch 'matthiasc/for-main' into 'main'Matthias Clasen2021-11-011-1/+3
|\ | | | | | | | | fontset: Add a missing annotation See merge request GNOME/pango!492
| * fontset: Add a missing annotationMatthias Clasen2021-10-311-1/+3
|/ | | | | pango_fontset_simple_append consumes the font that it is given.
* Merge branch 'matthiasc/for-main' into 'main'Matthias Clasen2021-10-312-0/+41
|\ | | | | | | | | Make logical glyph extents better See merge request GNOME/pango!491
| * Add tests for matrix transformationsMatthias Clasen2021-10-311-0/+39
| |
| * Make logical glyph extents betterMatthias Clasen2021-10-311-0/+2
|/ | | | | For east and west gravity, the logical glyph extents were still misaligned with the ink extents.
* Merge branch 'glyph-extents-fixes' into 'main'Matthias Clasen2021-10-313-36/+113
|\ | | | | | | | | cairo: Produce meaningful logical glyph extents See merge request GNOME/pango!490
| * cairo: Small fixupglyph-extents-fixesMatthias Clasen2021-10-301-1/+1
| | | | | | | | | | | | cf_priv->scaled_font is initialized on demand, it may be NULL. So better call the getter. This was showing up as failure in the asan test in ci.
| * Revert "Disable failing line height tests"Matthias Clasen2021-10-301-9/+5
| | | | | | | | This reverts commit 7a4af7a052e7e4187955aad9c4c60853bad806f9.
| * Use harfbuzz metrics for cairo fontsMatthias Clasen2021-10-301-14/+37
| | | | | | | | | | Without this, we end up with differences in metrics of empty runs.
| * cairo: fix hinting of metricsMatthias Clasen2021-10-301-4/+3
| | | | | | | | | | | | | | We were looking at the wrong font options here, causing metrics to not be hinted when they should be. This was causing some of the empty line height tests to fail.
| * cairo: Produce meaningful logical glyph extentsMatthias Clasen2021-10-301-11/+28
| | | | | | | | | | Depending on gravity, our logical glyph extents were empty and mis-aligned. Fix that.
| * Add tests for glyph extentsMatthias Clasen2021-10-301-0/+42
| |
* | Merge branch 'bilelmoussaoui/gi-annotations' into 'main'Matthias Clasen2021-10-301-2/+1
|\ \ | |/ |/| | | | | gi: add array annotations to get_languages See merge request GNOME/pango!489
| * gi: add array annotations to get_languages Bilal Elmoussaoui2021-10-301-2/+1
|/ | | | Also drops the null-terminated doc comment as gi-docgen shows that already if the function is annotated properly
* 1.49.21.49.2Matthias Clasen2021-10-292-1/+9
|
* Merge branch 'bilelmoussaoui/gi-annotations' into 'main'Matthias Clasen2021-10-294-0/+30
|\ | | | | | | | | pango: backport an old since annotation See merge request GNOME/pango!488