| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
There is more we can do here, but this is a start.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a char_offset field to PangoItem, compute it as part of
itemization and update it when splitting items. Keeping this
number around cuts down on the amount of list and utf8 walking
we need to do later.
We have to do some extra shenanigans to preserve abi in the
face of pango's open-coded structs, so we introduce a
PangoItemPrivate type that is used internally. On 64bit,
PangoItem has a 4 byte whole, so we can keep the size of
PangoItemPrivate the same. No such luck on 32bit.
|
|
|
|
|
|
| |
Improve the itemization code to have all
variants take the same code paths, so we
can do fixups in one place.
|
|
|
|
|
|
| |
The intention was to flip the rectangle horizontally.
We do return a negative width, but we forgot to flip
the origin.
|
| |
|
|
|
|
|
|
|
| |
Try to find a single non-mark glyph in a multi-glyph
cluster to use its ligature caret information. This
fixes situations in Arabic where you can have marks
on top of ligatures, e.g. ﻉﻭ.
|
|
|
|
|
|
|
| |
The ligature caret positions returned by
hb_ot_layout_get_ligature_carets are 'unshaped' metrics.
We need to take the kerning into account that is applied
during shaping, and shows up in the glyphstring as x_offset.
|
|
|
|
| |
Still not working quite right, but getting closer.
|
|
|
|
|
|
| |
What the docs were saying is no longer strictly true,
now that we are using font metrics. Update them, and
add an illustration.
|
|
|
|
| |
Show cursor positions.
|
|
|
|
|
|
|
| |
We were not correctly handling overlapping segments
in all cases, with <span segment='word'>. Improve this.
Update affected tests.
|
|
|
|
|
|
| |
We were not correctly handling the case where
wipe out a sentence boundary after the fact,
and were leaving behind a stray sentence end.
|
|
|
|
| |
These are required for a conforming implementation.
|
|
|
|
|
|
|
|
| |
We were not putting a line break at the end of the
text, in cases where a paragraph ends with a newline.
Enforce this in all break apis.
Update affected tests.
|
|\
| |
| |
| |
| |
| |
| | |
Use ligature caret lists
Closes #39
See merge request GNOME/pango!438
|
| |
| |
| |
| |
| |
| |
| |
| | |
Some fonts provide information about where to
place carets inside ligatures. Use it, when it
is available.
Fixes: #39
|
|/
|
|
|
|
|
| |
We were forgetting to reshape runs in some situations,
leading to them not having hyphens appended. This was
happening when runs fit fully onto the end of a line
that is wrapped anyway.
|
|
|
|
|
|
|
| |
Add attributes that let us override word and
sentence boundaries (and, indirectly, line breaks).
Tests included.
|
|\
| |
| |
| |
| |
| |
| | |
Add hyphens to log attrs
Closes #603
See merge request GNOME/pango!436
|
| |
| |
| |
| |
| |
| | |
Print out all the log attrs we have.
Update expected test outputs.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Replace ‧ and | with a - when we break there.
Update affected test output.
Fixes: #603
|
| |
| |
| |
| |
| | |
Rearrange the buffer setup code slightly,
so that we can change it easier, later.
|
| | |
|
| |
| |
| |
| |
| |
| | |
The code computing this is much better off in break.c,
so move it there, and keep the information in the
log attr array.
|
| | |
|
|/
|
|
|
| |
This is like pango_layout_get_cursor_pos, but returns
a rectangle that has caret font metrics applied to it.
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far, we've been applying attribute-based
customization while doing per-item tailoring.
But this is suboptimal, since it means we don't
have a full view of the log attrs, and can't
do invariant fixes that cross item boundaries.
Therefore, add a separate pango_attr_break
api that applies attributes to to the whole
paragraph, and make PangoLayout use it.
|
|
|
|
| |
Shuffle break.c around a bit.
|
|
|
|
|
|
|
|
|
|
|
| |
We want to insert word start+end if libthai
hands us line breaks between letters. But must
be careful not to overwrite existing word boundaries,
or we end up with a nonsense sequence.
This was found by checking log attr invariants.
Regenerate affected test outputs.
|
|
|
|
|
|
| |
There is no need to throw away the log_attrs when
we just change the width, or other layout properties
that do not affect segmentation.
|
|
|
|
| |
Show font metrics.
|
|
|
|
|
| |
With the current implementation of text-transform,
we need the attribute to be constant across runs.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Fix a few comments.
|
|
|
|
| |
The new text-transform attribute was overlooked.
|
|
|
|
| |
This was overlooked.
|
|
|
|
| |
Reshuffle things to make room for validation.
|
|\
| |
| |
| |
| |
| |
| | |
renderer: Don't divide by zero
Closes #599
See merge request GNOME/pango!425
|
| |
| |
| |
| |
| |
| |
| |
| | |
Before dividing by num_glyphs in draw_strikethrough,
make sure it isn't 0. This should fix reported crashes
in this function.
Fixes: #599
|
|\ \
| |/
|/|
| |
| | |
Add support for text transformation
See merge request GNOME/pango!421
|
| | |
|
| |
| |
| |
| |
| |
| | |
Transform the text we hand to harfbuzz, as prescribed
by the text transform attributes we have. This uses
the log attrs to find word starts.
|