| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Doing this makes g-ir-scanner pick up the long description,
which is more useful than the struct docs.
|
|
|
|
|
| |
Remove obsolete implementation details from the
PangoFontMap struct docs.
|
|
|
|
|
| |
g-ir-scanner picks the long description over the struct
docs, when the id matches.
|
|
|
|
| |
This is in preparation for going to pure markdown.
|
|\
| |
| |
| |
| | |
Markup parse fixes
See merge request GNOME/pango!292
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The docs state that all chars marked with the accel
marker get an underline. But we were only underlining
the first in each text chunk.
Second, if an underline appears at the end of a text
chunk, or at the end of the text, we would just eat
it, which is unexpected.
|
|\ \
| |/
|/|
| |
| | |
Fix attribute splicing
See merge request GNOME/pango!287
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the 'other' list contains attributes that are
unlimited or exceed the range given to pango_attr_list_splice,
those attributes were 'leaking' out of the range. The visible
effect of this is that the underline of preedit text extends
outside the preedit in some GTK entries.
Fix this by clipping the inserted attributes to the range.
The documentation is not very explicit about this, but I believe
this is the expected behavior.
Tests included.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the recently introduced threading for fontconfig
calls, we introduced an ordering issue where the fontmap
may die before an outstanding thread returns, and then
the code that unrefs the pattern object tries to remove
it from the fontmap cache.
Prevent that by giving each thread a strong ref on the
fontmap while it runs.
Fixes: #537
|
| |
| |
| |
| |
| | |
Add sysprof marks around the expensive fontconfig
calls, and for when we are waiting on them.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With a big fontconfig configuration, FcInit takes some time
(60-100ms on my system). Doing this work off the main thread
can potentially avoid blocking other work.
To take advantage of this, GTK calls pango_cairo_font_map_get_default()
early to initiate the creation of a fontmap, thereby triggering the
FcInit() call.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
fontconfig is thread-safe, so we can do calls that
can take several milliseconds to complete in a thread.
This patch does that for FcFontSetMatch and FcFontSetSort.
It is a win, at least for FcFontSetSort, since it
reduces the time that the main thread spends in
pango_fc_patterns_get_font_pattern for i > 0 from
around 10 to 6 milliseconds.
|
| |
| |
| |
| |
| |
| |
| | |
We have filtered-by-format lists of fonts available
now, so we should use them to ensure we always operate
on the same set of fonts. Also, fix another case of
passing NULL for the config.
|
| |
| |
| |
| |
| |
| | |
The fontconfig configuration changes rarely, so we can avoid
unnecessary work by only doing the filtering by supported formats
once, and keeping the result.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Passing NULL for a config argument in a fontconfig
api means we are using the default configuration,
which may be different from the one the fontmap
is supposed to be using.
Fix an instance of this in pango_fc_face_list_sizes.
|
|/
|
|
|
|
|
|
|
| |
Passing NULL for a config argument in a fontconfig
api means we are using the default configuration,
which may be different from the one the fontmap
is supposed to be using.
Fix an instance of this in pango_fc_fontset_load_next_font.
|
|
|
|
|
| |
PANGO_VERSION_MIN_REQUIRED is a build utility, and
is not useful as a constant in the gir. Leave it out.
|
|
|
|
|
| |
PANGO_MAJOR/MINOR/MICRO_VERSION are useful to have
in the gir.
|
|
|
|
|
| |
Add casts to get some defined constants to have
the right type in the gir. The games we play...
|
|
|
|
|
|
|
|
|
| |
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.
|