| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
g-ir-scanner's handling of #defines is really rudimentary,
so we have to trick it to pick up PANGO_ATTR_TO_TEXT_END
as a constant with value 0, and then override the value
with an annotation.
See https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/369
|
|
|
|
| |
Remove references to a function that no longer exists in gtk.
|
|
|
|
|
|
|
|
|
|
|
| |
We are using the size from the FcPattern. For scalable
bitmap fonts, this has been scaled to match the requested
pixel size. To make a font description that can be turned
back into a FcPattern and roundtrip successfully, we need
to undo that scaling. Thankfully, fontconfig leaves the
pixelsizefixupfactor in the pattern, so it is easy to do.
Fixes: #530
|
|\
| |
| |
| |
| |
| |
| | |
Attr list overflow
Closes #455
See merge request GNOME/pango!278
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Avoid overflow when updating the end_index of
attributes in pango_attr_list_update. This is
a real risk, because end_index is commonly set
to G_MAXUINT to mean 'until the very end'.
Test included.
Fixes: #455
|
| |
| |
| |
| |
| | |
The arguments to pango_attr_list_update are ints,
but negative numbers don't make sense here.
|
|/
|
|
|
|
|
|
| |
The docs were claiming that face names are unique,
but we don't know that, and it doesn't hold in
practice.
Fixes: #528
|
|\
| |
| |
| |
| |
| |
| | |
Translate origin point for vertical layout
Closes #454
See merge request GNOME/pango!168
|
| |
| |
| |
| |
| | |
The origin point for vertical layout needs to be translated
for cairo rendering from the horizontal origin to the vertical origin.
|
|\ \
| |/
|/|
| |
| |
| |
| | |
Fix the length checking
Closes #526
See merge request GNOME/pango!273
|
| |
| |
| |
| | |
Closes #526
|
|/
|
|
|
| |
according to docs of pango_cairo_font_map_new() it shouldn't crash
the application by calling g_error.
Instead, it should return NULL and it can log that using g_critical.
|
|
|
|
|
|
|
|
| |
When harfbuzz is built as a subproject, the
gobject dep should be used to generate the gir.
The build was failing when the harfbuzz gir was not available
system wide.
|
|
|
|
| |
Remove the unused face setter and field.
|
|
|
|
|
|
|
| |
This was returning NULL for coretext fonts.
Good that we have tests for this.
Fixes: #524
|
| |
|
|
|
|
|
|
|
| |
Discuss problems with extra_attr indices in the
docs for pango_shape() and friends.
See: #511
|
|\
| |
| |
| |
| | |
fontconfig: Try harder to find a default face
See merge request GNOME/pango!258
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/
| |
| |
| | |
fontconfig: Try harder to return a default face
See merge request GNOME/pango!256
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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".
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
|/|
| |
| | |
meson: Use meson.override_dependency()
See merge request GNOME/pango!250
|
| |
| |
| |
| |
| | |
This allows projects that use pango as a subproject to not hardcode
dependency variable names such as 'libpangocairo_dep'.
|
|/
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Properties are better with getters.
|
|
|
|
|
|
| |
Make pango_font_family_list_faces() return faces
sorted by slant and weight. This makes the font
chooser look much less random.
|
|
|
|
|
| |
Move things around to reflect the fact that we are now
in 1.47, and use our deprecation macros.
|
|\
| |
| |
| |
| |
| |
| | |
Add pango_fc_font_map_set_default_substitute
Closes #83
See merge request GNOME/pango!191
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
This returns the list of preferred languages, as
determined from the PANGO_LANGUAGES or LANGUAGES
environment variables.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | |
| | | |
misc fixes
See merge request GNOME/pango!242
|
| | |
| | |
| | |
| | |
| | | |
clang doesn't know that this is fine, and complains.
So help it out.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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);
|
|\ \ \
| |/ /
| | |
| | |
| | | |
Fix attr iterators with overlapping attributes
See merge request GNOME/pango!240
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
...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 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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
Declare variables at the top of the block...
|
| |
| |
| |
| |
| | |
This #if snuck in as part of efa66e7b634050ef3.
No need to keep it around.
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes pango_win32_font_map_load_font when font contains fallback families
Closes #482
See merge request GNOME/pango!217
|