| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
This reverts 681f92d78c2623, after adding the crash
that it alludes to as a test case and verifying that
it no longer crashes.
This commit was causing split cursors to not work
as intended at the end of a mixed-direction string.
Broken since 2008...
|
|
|
|
|
|
|
|
|
| |
Changes in width only need to break runs in
vertical context.
Update tests and add a new test.
Fixes: #503
|
|
|
|
|
|
|
|
| |
itemize_state_init was setting gravity-related fields
to their initial values too late, after update_attr_iterator
has already set them to the values for the first run.
Test included.
|
|
|
|
|
|
| |
Just pass PANGO_GRAVITY_AUTO on to
pango_gravity_get_for_script_and_width.
It has just the same fallback handling.
|
|
|
|
|
|
|
|
| |
Add functions to cast PangoAttribute to the various
struct types, so language bindings can get at the
payload.
Fixes: #476
|
|
|
|
|
|
| |
Add accessors for PangoLayoutLine fields.
Fixes: #553
|
|
|
|
|
|
| |
Add private api to get the necessary information from
the font backend, and drop the hack that was added in
d4356779945855f7cc.
|
|
|
|
|
|
| |
Start using private vfuncs for PangoFont, and use it
to replace the recently introduced pango_fc_font_get_languages
with a frontend api.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
pango_attr_iterator_get_attributes only returns
the innermost attribute of each kind. That is correct
for attributes that supersede each other, but not for
font descriptions, which get merged. So, keep all
font attributes in the returned list.
Update affected tests.
|
|\
| |
| |
| |
| |
| |
| | |
font-desc: Use local double values to store sizes
Closes #580
See merge request GNOME/pango!377
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Under i386 multiplying double and integer values and cast it to integer
may end up to compute the wrong value when only 387 FPU is used, because
the temporary value will be stored in a register whose precision isn't
good enough.
And so, some multiplications which are expected to produce an integer,
will actually return a truncated value, that will be eventually floored.
An example is 1.2 * 12800 that is clearly 15360.0, but will produce
15359 when casted to int in the said i386 environment.
So use a temporary double variable to ensure that we do this computation
in the double scope, before casting to int.
And this will avoid using the said register, even when using more
aggressive optimizations (as per marking the local variable volatile).
Fixes: https://gitlab.gnome.org/GNOME/pango/-/issues/580
|
|/
|
|
| |
Use GMutex to protect the thai_brk in multithreading.
|
|
|
|
|
|
|
|
|
| |
Put spaces into the previous or the next item,
depending on which one has the 'better' font.
This reduces space variations in the presence
of font fallback.
See: #249
|
| |
|
|
|
|
|
| |
Another case where using a GPtrArray instead of
a GArray of pointers is nicer.
|
|
|
|
|
| |
Use a GPtrArray instead of a GArray of pointers,
to avoid case-align warnings.
|
|
|
|
|
| |
We require harbuzz to be at least 2.0.0 for a while now.
No need to check that version at runtime.
|
|
|
|
|
|
|
|
| |
pango_attr_list_change was returning early in one
case, missing to do some necessary cleanup of the
list.
Fixes: #564
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
layout: make the height of an empty line match a regular line
Closes #577
See merge request GNOME/pango!363
|
| |
| |
| |
| |
| | |
When using line-spacing, the height of an empty line is the same as when line-spacing has zero value.
Take the value from font metrics.
|
| |
| |
| |
| |
| | |
Add some more default values, and correct the docs
for pango_layout_set_spacing wrt to the default value.
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
pangowin32: Clear cmap on finalize
See merge request GNOME/pango!318
|
| | |
| | |
| | |
| | |
| | | |
Implement copy method for format_4_cmap and format_12_cmap, and
free don't leak the struct.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The documentation for this function states that all
bidi control chars are zero width, but it was missing
the Isolate ones. Add them.
Updated tests included.
|
| |/
|/|
| |
| |
| |
| |
| |
| | |
harfbuzz creates a face, but doesn't seem to find
any glyphs in woff fonts, so filter them out.
Sadly, fontfonfig does not have useful format information
about this, so we need to crudely filter by filename.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Correctly classify tag characters as Grapheme_Extend,
so that we don't end up putting grapheme boundaries
in the middle of tag sequences.
Includes a test.
|
| |
| |
| |
| | |
This makes tests more reproducible.
|
| |
| |
| |
| | |
pango_layout_get_tabs returns a copy.
|
| |
| |
| |
| |
| | |
Since these are not properties, their default
values aren't documented anywhere. Until now.
|
| |
| |
| |
| |
| | |
The convention is to return the initial value if
the 'this' check fails. Correct this for auto_dir.
|
| |
| |
| |
| | |
This makes it obvious what the initial value is.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
pango_layout_get_direction contained an assertion that
would be hit when just iterating over all chars in the
text of the layout (it gets hit when you get to the final
newline).
Remove the assertion, so that this function is less
of a trap.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In 85bdfead1b36945db251 I made consecutive runs average
their strikeout positions, but I did handle the accounting
properly, causing previous runs to influence the strikeout
of later runs, if we have to draw them separately (due to
color change).
It would be nicer to average even across color changes and
draw the line continuously in that case as well, but that
would require two passes over the runs.
Fixes: #574
|
| |
| |
| |
| |
| |
| | |
This clarifies things for myself.
Fixes: #573
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
There was a data race in accessing the ref_count of this struct; now
with g_atomic_rc_box it's done properly across threads.
Fixes https://gitlab.gnome.org/GNOME/pango/-/issues/571
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We were trying to cut short the wait for FcInit in
pango_fc_font_map_set_config. But there was a thinko:
while it is true that the fontmap which had set_config
called on it does not need to wait for FcInit anymore,
other threads fontmaps still do. Instead of making this
more complicated, just drop the optimization.
|
| |
| |
| |
| |
| |
| |
| | |
The return value is owned by Pango. transfer=none doesn't
really work for non-GObject types, so just spell it out.
Fixes: #572
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
shape: Bring back careful rounding code
Closes #562
See merge request GNOME/pango!344
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When we added the round-glyph-positions option in
c43da2d3 and b5634799, we lost some code that was careful
to round in device coordinates.
The reason we lost it is that the rounding needs fontconfig-
specific data that is only available in the backend, and the
rounding now happens in the frontend.
Bringing it back is annoying, since we've run out of vfunc
slots to get info from the backend. This commit works around
that limitation in a hacky way.
Fixes: #562
|
| | |
| | |
| | |
| | |
| | | |
The api is deprecated, but it is very ugly to randomly
miss a few values here. Just add them.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
The expectation of version comparisons is that major
versions have to match exactly.
|
| | | |
|