| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This tests that we turn off ligatures when letterspacing
is enabled.
|
|
|
|
|
|
|
| |
The Microsoft paper I was citing actually recommends
1/4 em for ASCII space. Make it so...
Update affected tests.
|
|
|
|
|
|
|
|
|
|
| |
Follow the Microsoft Typography recommendations from
https://docs.microsoft.com/en-us/typography/develop/character-design-standards/whitespace
and use half of an em for missing space.
Update affected tests.
Fixes: #647
|
|
|
|
|
| |
This test verifies the fixes for the
situation described in #646.
|
|
|
|
|
|
| |
Oops, we were not serializing the height at all.
Update all affected tests.
|
|
|
|
|
|
|
|
|
|
|
| |
When coming up with a width for a missing space,
we were just measuring the hex digits. But in
subsetted fonts, such as the ones we use for ci,
hex digits might well be missing. Take that into
account and still provide some nonzero width
for space.
Update affected tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is a difficult dance between HarfBuzz and pango
which glyphs we let hb synthesize, and which ones
we need to fake ourselves.
HarfBuzz knows how to create other spaces from 0x20,
so if the font is lacking spaces, we want to tell
HarfBuzz that we don't have that glyph *except* for
0x20 where we need to fake one, and provide HarfBuzz
with a suitable width.
Update affected tests.
|
|
|
|
|
|
|
|
|
| |
This reverts commit ccb651dd2a876a4f4a4cb9351f05332173e709ba.
This broke vertical text rendering, see
https://gitlab.com/inkscape/inkscape/-/issues/2950.
Update affected tests and add a vertical test.
|
|
|
|
|
|
|
|
|
|
|
| |
HarfBuzz knows how to synthesize spaces, we just
need to tickle it in the right way.
Test included.
Update affected tests.
Fixes: #641
|
|
|
|
| |
This tests the fix in the previous commit.
|
|
|
|
|
|
|
|
|
| |
We can't break in a tab run.
This fixes an assertion found by afl.
Testcase included.
Fixes: #638
|
|
|
|
|
|
|
|
|
|
| |
We an only use the line_width - remaining_width
shortcut if we are actually maintaining remaining_width,
i.e. not if we don't wrap lines.
Testcase included.
Fixes: #635
|
|
|
|
| |
Update affected test outputs.
|
|
|
|
|
|
|
|
|
|
| |
When we uninsert the current tab run, we need to reset
our tab state to prevent last_tab->glyphs to become a
dangling pointer.
Test included.
Fixes: #634
|
| |
|
|
|
|
|
| |
Don't calculate line width the hard way when
we can do it much easier.
|
| |
|
|
|
|
|
|
|
| |
This is useful for PANGO_TAB_DECIMAL.
Implement this in PangoLayout, in the
serializer, and update tests.
|
|
|
|
|
|
|
|
|
| |
Serialize tab alignment in addition to tab
position. We still accept the old format
and default alignment to left.
Update testserialize and layout tests
for this.
|
|
|
|
|
|
|
|
| |
Even when we show ignorables, we still want to
ignore variation selectors and other ignorables
that we don't have nicks for.
Test included.
|
|
|
|
|
|
|
|
|
|
|
| |
Without this, we end up with line height being
zero in gravity north or west. The visible symptom
is that wrapped lines are drawn on top of each
other with line-height != 0.
Affected tests have been updated.
Fixes: #631
|
| |
|
|
|
|
|
|
|
|
| |
Otherwise editing the output in an editor
is likely to make the data not match anymore,
since most editors will add a final newline.
Update all tests
|
|
|
|
|
|
|
|
|
| |
Add Cantarell, DejaVu Sans and a subset of Noto Color Emoji
to git, and make test-layout use just those fonts. This
should help with keeping the ci from breaking due to different
system fonts.
Update tests.
|
|
|
|
|
| |
These were produced with the help of
http://gitlab.gnome.org/matthiasc/layout-editor
|
|
|
|
|
|
| |
Use the new output serialization in test-layout
to store both the input and output in the same
file.
|
|
|
|
|
|
|
| |
If requested, serialize lines, runs, and log attrs.
This will let us use the serialization format to
record not just the test inputs, but outputs as
well.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we take a complete item because there are
no breakpoints, we were inserting a hyphen at
the end even though there may not be a breakpoint
there, and ending up with a hyphen in the middle
of an (overlong) line: Brat-wurst.
Test included.
This but was discovered with the help of
http://gitlab.gnome.org/matthiasc/layout-editor
|
|
|
|
|
|
|
|
|
|
|
| |
I went a bit overboard in #603. The vertical bar
is too common, and this usage to specialized to
do it by default. To enable this, we should rather
make log attrs tweakable.
We still replace hyphenation points with hyphens.
Fixes: #630
|
|
|
|
|
| |
Now that we have this api, lets use it for
our tests.
|
|
|
|
| |
Update affected test outputs.
|
|
|
|
| |
Some of the layout tests now get better line breaks.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't really have firm control over the way
attributes are ordered in the list, so the
assumtion that we see proper nesting for baseline
shifts was a bit optimistic.
Just look through all open stack items for a match,
and remove that.
Test included.
|
|
|
|
|
|
|
|
| |
Replace ‧ and | with a - when we break there.
Update affected test output.
Fixes: #603
|
|
|
|
|
|
|
|
| |
Reimplement this function based on pango_layout_get_cursor_pos.
This is a bit less efficient, but it fixes cases where the old
implementation would get stuck.
Fixes: #587, #585, #157
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
Allow setting more layout properties in test-layout,
and check their values after setting them.
Also print out directions and cursor positions.
Update existing tests, and add more.
|
|
|
|
|
|
|
|
|
| |
The commit message for d476d2a944500f8553 said
"word boundaries", but the code checked for line
breaks. That was wrong, since it also made hyphens
disappear at SHY, where we very much want them.
Update affected tests.
|
|
|
|
|
|
|
|
|
|
| |
We only want to insert hyphens when we are breaking
inside a word.
Update affected tests (hyphen-or-not shows up in the
analysis flags in the output of test-layout).
Fixes: #558
|
|
|
|
|
| |
This tests that we are not breaking items up
in the middle of a keycap sequence.
|
|
|
|
|
|
| |
Try not to pick a width that makes line-breaking decisions
depend on rounding. Lets see if this works better, it makes
the test pass locally.
|
|
|
|
| |
This reverts commit 4d8e71471984fb0fc147d1a64695ad5f18576fde.
|
|
|
|
|
| |
We don't set an attribute list in these cases anymore, so reflect that
in the output.
|
|
|
|
| |
The change is a harmless change in attribute list ordering.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we are splitting attributes into those that
are relevant for itemization and shaping, we need to
make sure to pass the right ones along when ellipsizing,
or we risk picking a wildly mismatching font for the
ellipsis run, causing things to shift vertically.
Test included.
Closes: https://gitlab.gnome.org/GNOME/pango/issues/397
Thanks to Jorge Luis Martinez Gomez for his help
in tracking this down.
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of filtering out the attributes we don't
want to influence itemization, explicitly filter
only those attributes that we want to affect itemization.
This makes us no longer break items for custom
attributes, such as GtkTextAppearance attributes
that are created by GtkTextLayout.
Update expected output for layout testcases.
|