| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
...instead of using EnumFontFamiliesEx(), and retrieve the LOGFONTW's that we
need via DirectWrite's GDI interop. Also cache up our IDWriteFont's that we
obtained, so that we can use DirectWrite to query font properties better
than what GDI/Uniscribe can do for us, such as obtaining stretch info from
the font. Also update synthesize_foreach() accordingly, since we should
also record the IDWriteFonts as well for synthesized LOGFONTWs.
Portions based on Luca Bacci's implementation of the DirectWrite fontmap
support in the upcoming Pango2.
|
| |
| |
| |
| |
| | |
We set up the boilerplate that is necessary for using DirectWrite in our code.
Also add code to tear it down after we are done with it.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
...in Cairo, as well as their presence in the Windows SDKs (which should
always be there in the Windows SDKs). We want to use items in DirectWrite
to help us improve support on Windows regarding looking up for features
(description) of a font.
Since upstream Cairo gained DirectWrite support very recently, check for
it only via pkg-config, since Cairo had Meson build support quite a bit before
that happened.
|
|\ \
| | |
| | |
| | |
| | | |
Fix GIR annotations in multiple files
See merge request GNOME/pango!648
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
Fix GIR annotations for fonts.c
See merge request GNOME/pango!647
|
| |/ / |
|
|/ / |
|
| | |
|
| | |
|
| |
| |
| |
| | |
See #705 and also https://gitlab.gnome.org/GNOME/gtk/-/issues/5226.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We accept NULL for log_attrs, so we should not
crash when we are given NULL. While fixing this,
clarify the documentation of the various shaping
APIs for what they can and cannot do.
Related: !641
|
| |
| |
| |
| |
| |
| | |
Make the serializer only serialize the
font of a layout if it is not NULL. This
lets us survive no-fonts situations better.
|
|/
|
|
|
|
|
|
| |
Make pango_font_get_scale_factors return 1
if the font is NULL. This avoids crashes
in situations where we cannot find any fonts.
Fixes: #701
|
|
|
|
|
|
|
|
| |
We were using the font metrics height, which is
scaled by the ctm, so we need to take the font
scale factors into account here.
Fixes: #691
|
|
|
|
|
| |
This avoids the unnecessary copy of the fonts
font description, just to extract the variant.
|
|
|
|
|
|
| |
Add a private pango_font_get_variant, and implement
it for PangoFcFont. This will let us avoid many
pointless font description copies.
|
|
|
|
|
|
|
|
| |
When we create a PangoFcFont from an FcPattern,
we know that the pattern will live as long as
the font and the font description we create
at the same time. So there is no need to copy
the strings we get out of the pattern.
|
| |
|
|
|
|
|
| |
It seems odd to document PANGO_WEIGHT_MEDIUM as the 'normal'
weight, when we also have PANGO_WEIGHT_NORMAL.
|
|
|
|
|
|
|
| |
We only want line separators at the line end
to be visible when the show flags say so. This
was not working before, because the shaping always
marks LS as unknown glyph.
|
|\
| |
| |
| |
| | |
Fix typo in declaration of PangoEngineShape
See merge request GNOME/pango!629
|
| | |
|
| |
| |
| |
| |
| | |
This is necessary to make GListModel show up
as implemented interface in the docs.
|
|/
|
|
|
|
|
| |
This reverts commit e5b62c8c27599699fa583a18e5346138799d9f50.
No longer needed. We've renamed everything to avoid
conflicts, instead.
|
|
|
|
|
|
|
|
|
|
| |
With a text of "ර් ", we were accidentally producing
a cursor position outside of the [start_xpos, end_xpos]
range, which clearly makes no sense.
Test included.
Fixes: #684
|
|
|
|
|
|
|
|
| |
Having both pango 1.x and pango 2 linked into
the same process will cause trouble, because the
type and function names conflict.
Error out if we detect this situation.
|
|\
| |
| |
| |
| | |
Update pango/pangowin32-fontmap.c, Do not enum Type-1-fonts
See merge request GNOME/pango!625
|
| | |
|
| | |
|
|/
|
|
| |
This showed up as wrong slopes with font size > 60.
|
|
|
|
|
| |
Notify :n-items when reloading the configuration,
since that may change the number of families.
|
|
|
|
|
| |
Add :item-type and :n-items properties, which
make the list model implementation more useful.
|
|
|
|
|
| |
Add :item-type and :n-items properties, which
make the list model implementation more useful.
|
|\
| |
| |
| |
| |
| |
| | |
layout: Try harder to survive without fonts
Closes #680
See merge request GNOME/pango!610
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
No great typography can be expected without fonts,
but we should try not to crash, since this situation
can apparently happen on Windows.
Fixes: #680
|
| |
| |
| |
| |
| | |
Let them have their NULL fonts.
Produce hexboxes without criticals.
|
|\ \
| | |
| | |
| | |
| | | |
pangowin32: register a "Sans-Serif" font
See merge request GNOME/pango!613
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This creates a fake font family which will fall back to the first
available font in the alias list and as a result
pango_win32_font_map_load_font() will no longer fail for "sans-serif".
This was already done for other aliases, but for some reason not for
"sans-serif".
See #680
|
|/
|
|
|
|
|
|
|
|
|
| |
load_fontset() in pangowin32 has various fallback code in case
no font is found, but load_font() doesn't and just returns NULL
in more cases.
I saw that the other backends like fc and coretext just call
load_fontset() in load_font() and return the first one.
This copies this strategy to the win32 backend.
|
|\
| |
| |
| |
| |
| |
| | |
Fix move pango_layout_move_cursor_visually
Closes #679
See merge request GNOME/pango!608
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When moving the cursor off the paragraph end to
the left in RTL text, we were moving to the previous
line, and not to the next line, as expected.
Test included.
Fixes: #679
|
|/
|
|
|
| |
Recent versions of clang notice that pango_core_text_fontset_load_font's
`key` local variable isn't used and errors out. Remove it.
|
|
|
|
|
|
|
|
|
| |
This was showing up as crashes in pitivi and inkscape.
The added test does not crash, but it does produce
the wrong result without the fix.
Fixes: #678
|
|
|
|
|
|
|
| |
When PangoAttrList was changed to use an array,
we lost the code that maintained non-decreasing
order in pango_attr_list_change. Bring it back,
and add a test for this.
|
|
|
|
|
|
| |
It is not really needed.
Fixes: #674
|
|
|
|
|
|
|
|
|
|
|
| |
Pango 1.50.x and later require a HarfBuzz version that is buildable via
Meson, so we can just use the standard dependency() call for HarfBuzz
for all builds.
This means that we can drop all the items where we search for HarfBuzz
manually.
Also remove the stray HarfBuzz items that are no longer used.
|
|
|
|
|
|
|
| |
During post-processing for lines, take into
account the baselines for each run, and shift
them vertically to align them on the dominant
baseline.
|
|
|
|
|
| |
Pango names it PANGO_VERSION_CHECK not PANGO_CHECK_VERSION (like glib).
Fix the one incorrect mention in the documentation comment.
|