summaryrefslogtreecommitdiff
path: root/pango
Commit message (Collapse)AuthorAgeFilesLines
* Docs: fix a typoMatthias Clasen2021-01-031-1/+1
|
* Amend the shaping api docsshape-docsMatthias Clasen2020-11-071-4/+19
| | | | | | | Discuss problems with extra_attr indices in the docs for pango_shape() and friends. See: #511
* Merge branch 'regular-face' into 'master'Matthias Clasen2020-11-061-8/+23
|\ | | | | | | | | fontconfig: Try harder to find a default face See merge request GNOME/pango!258
| * fontconfig: Try harder to find a default faceregular-faceMatthias Clasen2020-11-061-8/+23
| | | | | | | | | | | | | | | | | | | | | | | | Fonts are amazing, and not in a good way. My system has fonts with 0, 1, 2 "Regular" faces. It also has fonts where the "Regular" face is, in fact, bold. So, we need to work even harder to return a reasonable face when asked about the default. We already make a determination of faces that we consider 'regular' when we create the faces initially. Just keep that information for later reuse.
* | Merge branch 'regular-face' into 'master'Matthias Clasen2020-11-051-3/+7
|\ \ | |/ | | | | | | fontconfig: Try harder to return a default face See merge request GNOME/pango!256
| * fontconfig: Try harder to return a default faceMatthias Clasen2020-11-051-3/+7
| | | | | | | | | | | | | | | | | | pango_font_family_get_face() is documented as nullable, so we are technically within our rights to return NULL, but that is unexpected when passing NULL to get the default face, and the family has faces. So, try a little harder by returning the first face if we don't find a face with the name "Regular".
* | ft2, xft: Write out the full type of the SubstituteFuncwip/issue510Simon McVittie2020-11-052-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | If the SubstituteFunc used for the now-deprecated set_default_substitute functions is an alias for PangoFcSubstituteFunc, GObject-Introspection doesn't realise it's a function pointer, and doesn't flag the user data and destroy-notify arguments as such. This results in bindings like PyGI thinking that they are entirely separate arguments, which is an introspection API break (and probably not something that can practically be called any more). Signed-off-by: Simon McVittie <smcv@debian.org> Resolves: https://gitlab.gnome.org/GNOME/pango/-/issues/510
* | Merge branch 'override-dependency' into 'master'Matthias Clasen2020-10-141-0/+5
|\ \ | |/ |/| | | | | meson: Use meson.override_dependency() See merge request GNOME/pango!250
| * meson: Use meson.override_dependency()Xavier Claessens2020-09-301-0/+5
| | | | | | | | | | This allows projects that use pango as a subproject to not hardcode dependency variable names such as 'libpangocairo_dep'.
* | meson: Change introspection option to yielding featureXavier Claessens2020-09-301-1/+2
|/ | | | | | | Yielding option means that if pango is built as a subproject, it will take the value of that option from the parent project (e.g. gst-build). For that to work it must be of the same type, which is "feature" instead of "boolean" in all GStreamer modules.
* Revert "meson: Change introspection option to yielding feature"Matthias Clasen2020-09-301-2/+1
| | | | | | | This reverts commit 82cfabbabaade239beb26136cb28c98156552ea5. This change broke GTK ci, and it takes more work to fix it than I can invest atm. We can try again when GTK is ready for it.
* Skip a pangofc accessorEmmanuele Bassi2020-09-301-1/+1
| | | | | | The handwritten fontconfig introspection data does not cover all types, and even if it did, it wouldn't know how to handle their ownership because fontconfig is not a GObject-based API.
* meson: Change introspection option to yielding featureXavier Claessens2020-09-291-1/+2
| | | | | | | Yielding option means that if pango is built as a subproject, it will take the value of that option from the parent project (e.g. gst-build). For that to work it must be of the same type, which is "feature" instead of "boolean" in all GStreamer modules.
* fc: Add a getter for PangoFcFont::patternfont-pattern-getterMatthias Clasen2020-09-212-0/+20
| | | | Properties are better with getters.
* fc: Sort faces of a familysort-facesMatthias Clasen2020-09-211-0/+28
| | | | | | Make pango_font_family_list_faces() return faces sorted by slant and weight. This makes the font chooser look much less random.
* Adapt deprecationsMatthias Clasen2020-09-183-8/+8
| | | | | Move things around to reflect the fact that we are now in 1.47, and use our deprecation macros.
* Merge branch 'ch/83' into 'master'Matthias Clasen2020-09-188-64/+115
|\ | | | | | | | | | | | | Add pango_fc_font_map_set_default_substitute Closes #83 See merge request GNOME/pango!191
| * add pango_fc_font_map_set_default_substituteCaleb Hearon2020-06-138-60/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | added: pango_fc_font_map_set_default_substitute pango_fc_font_map_default_substitute_changed deprecated: pango_ft2_font_map_set_default_substitute pango_ft2_font_map_changed pango_xft_font_map_set_default_substitute pango_xft_font_map_changed Now PangoCairoFcFontMap will call what is passed to pango_fc_font_map_set_default_substitute when it is time. The deprecated functions make calls to the parent (FC) class now. The user-supplied callbacks are executed in the exact same places as before.
| * single function type for FC substitute callbackCaleb Hearon2020-06-133-4/+13
| |
* | pangofc: Add pango_fc_font_get_languagespreferred-languagesMatthias Clasen2020-09-184-1/+94
| | | | | | | | | | | | | | This really belongs into PangoFont, but we're out of room in the PangoFontClass struct for vfuncs, so this will have to remain backend-specific functionality for now.
* | Add pango_language_get_preferredMatthias Clasen2020-09-182-4/+35
| | | | | | | | | | | | This returns the list of preferred languages, as determined from the PANGO_LANGUAGES or LANGUAGES environment variables.
* | Add 1.48 version macrosMatthias Clasen2020-09-181-0/+24
| |
* | Fix handling of keycap sequencesMatthias Clasen2020-09-171-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | The last character of Emoji keycap sequences, 0x20E3, has a vertical orientation of U, according to Unicode. This unfortunately makes the width iter frequently break such sequences into multiple items, preventing them from being rendered as expected. Fix this by ignoring width changes inside Emoji sequences. Fixes: #502
* | Merge branch 'matthiasc/for-master' into 'master'Matthias Clasen2020-09-172-2/+2
|\ \ | | | | | | | | | | | | misc fixes See merge request GNOME/pango!242
| * | Fix a cast-align warningMatthias Clasen2020-09-171-1/+1
| | | | | | | | | | | | | | | clang doesn't know that this is fine, and complains. So help it out.
| * | Small const correctness fixMatthias Clasen2020-09-171-1/+1
| | | | | | | | | | | | | | | | | | | | | clang complains that initializing 'FcPattern *' (aka 'struct _FcPattern *') with an expression of type 'const FcPattern *' (aka 'const struct _FcPattern *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] FcPattern *pattern = pango_fc_font_key_get_pattern (key);
* | | Merge branch 'fix-nested-attributes' into 'master'Matthias Clasen2020-09-171-11/+6
|\ \ \ | |/ / | | | | | | | | | Fix attr iterators with overlapping attributes See merge request GNOME/pango!240
| * | Fix attr iterators with overlapping attributesfix-nested-attributesMatthias Clasen2020-09-171-11/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This broke when PangoAttrIterator was changed to use an array for the stack of current attributes, in dec6c0868ef2c36. We were not always walking the array in the right order. The first attribute to check is at the *end* of the array. This showed up as misrendering in epsilon_0 example in gtk3-demo's text view markup demo. Test included.
* | | Let get_items_log_attrs take the start-of-text offset into accountStephan Bergmann2020-09-101-2/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...when interpreting item->offset values. I ran into this when executing tests of recent LibreOffice master with ASan on Fedora 32 (with pango-1.44.7-2.fc32.x86_64), where one of the tests renders various dialogs with a Tamil localization and failed with > ==97247==ERROR: AddressSanitizer: SEGV on unknown address 0x60b000210006 (pc 0x7fd6c5b22b54 bp 0x61d0004b4150 sp 0x7fff107a0d18 T0) > ==97247==The signal is caused by a READ memory access. > #0 in g_utf8_get_char at ../glib/gutf8.c:319:37 (/lib64/libglib-2.0.so.0 +0x85b54) > #1 in break_indic at ../pango/break-indic.c:119:17 (/lib64/libpango-1.0.so.0 +0x1076d) > #2 in break_script at ../pango/break.c:1896:7 (/lib64/libpango-1.0.so.0 +0x1076d) > #3 in tailor_break at ../pango/break.c:1606:9 (/lib64/libpango-1.0.so.0 +0x147db) > #4 in pango_tailor_break at ../pango/break.c:1774:7 (/lib64/libpango-1.0.so.0 +0x147db) > #5 in get_items_log_attrs at ../pango/pango-layout.c:4032:7 (/lib64/libpango-1.0.so.0 +0x2729c) > #6 in pango_layout_check_lines at ../pango/pango-layout.c:4289:7 (/lib64/libpango-1.0.so.0 +0x2729c) > #7 in pango_layout_get_extents_internal at ../pango/pango-layout.c:2623:3 (/lib64/libpango-1.0.so.0 +0x29068) > #8 in gtk_label_get_measuring_layout at /usr/src/debug/gtk3-3.24.22-1.fc32.x86_64/gtk/gtklabel.c:3376:3 (/lib64/libgtk-3.so.0 +0x2454d0) [...] From some debugging, it smells like `pango_layout_check_lines` calls `pango_itemize_with_base_dir` to compute `state.items` that are relative to the beginning of `layout->text`, but then passes `state.items` together with the offset'ed `start` into `get_items_log_attrs`, so that the latter misinterpreted the items' locations relative to the offset'ed start. Just adding g_assert (item->offset <= length); g_assert (item->length <= length - item->offset); to the original `get_items_log_attrs` would make various tests in the `meson test` suite fail, but which pass again with the complete fix, matching the above speculation.
* | Add some more language sample textsmore-sample-textsMatthias Clasen2020-09-081-1/+34
| | | | | | | | | | | | Add sample texts for Khmer, Lao, Thaana, Sinhalese and Burmese, the first two are from GLASS, the last three are from the Wikipedia articles on these writing systems.
* | Don't assert in pango_language_get_scriptsavoid-script-lang-crashMatthias Clasen2020-09-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | The assertion in pango_language_get_scripts can actually be triggered since we last regenerated the pango_script_for_lang table. It now includes an entry for und-zsye which has no scripts. Handle this case without asserting. This commit includes a test.
* | pangowin32-fontmap.c: Fix build on older compilersChun-wei Fan2020-08-261-1/+3
| | | | | | | | Declare variables at the top of the block...
* | Remove leftover debug codeMatthias Clasen2020-08-231-2/+0
| | | | | | | | | | This #if snuck in as part of efa66e7b634050ef3. No need to keep it around.
* | CosmeticMatthias Clasen2020-08-211-2/+2
| |
* | Merge branch 'issue-482' into 'master'Matthias Clasen2020-08-201-23/+28
|\ \ | | | | | | | | | | | | | | | | | | Fixes pango_win32_font_map_load_font when font contains fallback families Closes #482 See merge request GNOME/pango!217
| * | Fixes pango_win32_font_map_load_font when font contains fallback familiesEvgenii Gurianov2020-08-041-23/+28
| | |
* | | Add sysprof tracing supportMatthias Clasen2020-08-193-0/+94
| | | | | | | | | | | | | | | Add support for adding sysprof marks. Strongly inspired by equivalent GLib support.
* | | Handle analysis.font being NULLMatthias Clasen2020-08-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | I don't think this is a legitimate concern, but it is faster to add a check than to argue about the use of pango on fontless systems. Fixes: #495
* | | Avoid a dead assignmentMatthias Clasen2020-08-181-1/+1
| | | | | | | | | | | | | | | As pointed out in #495, we were assigning logical_rect->y twice in a row here. Once is enough.
* | | Merge branch 'cairo-fontconfig-buglet' into 'master'Matthias Clasen2020-08-182-9/+17
|\ \ \ | | | | | | | | | | | | | | | | Use proper fontconfig config object See merge request GNOME/pango!222
| * | | cairo: Use the proper FcConfigMatthias Clasen2020-08-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | When calling into FcConfig api, passing NULL means "use the default config". But we may have a set config that we should be using for all fontconfig calls.
| * | | Don't call FcFontSetSort twiceMatthias Clasen2020-08-151-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | We can do the format filtering on the unsorted font lists. Sorting the same list twice may be fast, but there's still some setup overhead.
| * | | Speed up font format filteringMatthias Clasen2020-08-151-1/+4
| | | | | | | | | | | | | | | | | | | | We were needlessly duplicating patters when we could have just referenced them.
* | | | Merge branch 'wip/smcv/revert-renderer-abi-break' into 'master'Matthias Clasen2020-08-162-12/+12
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | renderer: Move overline to priv data structure Closes #497 See merge request GNOME/pango!220
| * | | | renderer: Move overline to priv data structureSimon McVittie2020-08-162-12/+12
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts the ABI break caused by adding the overline to the public data structure, and is binary- and source-compatible with Pango 1.45.0 and older, but not compatible with versions 1.45.1 to 1.46.0 inclusive. Resolves: https://gitlab.gnome.org/GNOME/pango/-/issues/497 Bug-Debian: https://bugs.debian.org/968337 Signed-off-by: Simon McVittie <smcv@debian.org>
* | | | Correct a typo in pangowin32.cFelix Yan2020-08-121-1/+1
|/ / /
* | | Adjust "Since" tags to refer to 1.46Rico Tzschichholz2020-08-061-2/+2
|/ /
* | Fix g-i annotation of pango_parse_color_with_alpha and add since tagRico Tzschichholz2020-08-041-1/+3
| |
* | Merge branch 'issue-489' into 'master'Khaled Hosny2020-08-031-0/+6
|\ \ | | | | | | | | | | | | | | | | | | Initialise out arguments Closes #489 See merge request GNOME/pango!211
| * | Initialise out argumentsEmmanuele Bassi2020-07-031-0/+6
| | | | | | | | | | | | | | | | | | | | | If we bail out early, we end up with uninitialised data and no way for a caller to know that happened. Fixes: #489