| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
The meson build uses -Werror=redundant-decls and fails.
https://bugzilla.gnome.org/show_bug.cgi?id=795012
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add an Emoji font family that maps to the following fonts in this order
(by fallback):
Segoe UI Emoji
Segoe UI Symbol
Segoe UI
This will enable Emoji to be displayed correctly in GTK+ apps (without
the use of FontConfig) on Windows Vista and later, providing that one
of the aforementioned fonts are installed.
Note that this only enables Emoji display (*not* colored ones) as
achieving colored Emoji requires PangoWin32 and Cairo to be ported to
Direct2D and DirectWrite from Uniscribe and GDI, as Uniscribe and GDI
does not support colored Emoji.
https://bugzilla.gnome.org/show_bug.cgi?id=794705
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is possible that we can have the following situations, at least on
Windows:
-FreeType present, FontConfig missing
-Cairo-FT present, with no FontConfig support.
As gen-script-for-lang requires FontConfig, and PangoFT2 depends on
HarfBuzz, FontConfig and Freetype, we need to check for them before we
build PangoFT2, and so that we could include PangoFT2 support in
PangoCairo.
The tests and pango-view have an optional dependency on PangoFT2, so we
need to also check whether we built PangoFT2 before we try to build
things related to PangoFT2.
For the tools, since gen-script-for-lang.c depends on FontConfig, check
for it as well before we build it.
https://bugzilla.gnome.org/show_bug.cgi?id=783274
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Building introspection should not be gated on cross-compilation: it's
perfectly acceptable to use an helper binary to run the introspection
scanner when cross-compiling — in fact, it's what projects like Yocto
do. Instead, we should have an option to disable the introspection
generation explicitly.
Additionally, when building introspection data for ancillary Pango
libraries, like PangoCairo or PangoXft, we should depend on the GIR
target, instead of adding an `--include-uninstalled` extra argument for
the introspection scanner; this allows building Pango as a sub-project
of another project, and lets Meson deal with the appropriate paths and
arguments when invoking the scanner.
|
| |
|
|
|
|
|
| |
Can’t tell if this is any faster, but does not look like a complex
thing to do, so why not.
|
| |
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=792231
|
|
|
|
|
|
|
|
| |
We call pango_fc_font_key_init on a stack-allocated temporary
lookup key, with the expectation that it does not have to be
freed. In the case where we want to use it as key in the font_hash,
we call copy() on it. So, don't duplicate the variations string
in init() - it will get duplicated in copy() later.
|
| |
|
|
|
|
|
|
|
| |
We pass them in through FcPattern to the cairo_face already, no need
to pass here again.
Yeah, I know... /tears
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This commit lets PangoFontDescription carry font variation
information as a string. Only pangocairo has been updated
to make use of this information. We pass it to harfbuzz
for shaping, and we pass it to cairo when creating scaled
fonts.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This function is unused since 2004! Last use was dropped in commit
2cdd74591a2b885dbc31292d20dabba81d42faf0. Currently it is just causing
compiler warnings:
[40/111] Compiling C object 'pango/pangoft2-1.0@sha/pangoft2.c.o'.
/usr/include/freetype2/freetype/fterrdef.h: In function ‘_pango_ft2_ft_strerror’:
/usr/include/freetype2/freetype/fterrdef.h:235:17: warning: initializer-string for array of chars is too long
"found FDEF or IDEF opcode in glyf bytecode" )
^
../pango/pangoft2.c:537:38: note: in definition of macro ‘FT_ERRORDEF’
#define FT_ERRORDEF( e, v, s ) { e, s },
^
/usr/include/freetype2/freetype/fterrdef.h:234:3: note: in expansion of macro ‘FT_ERRORDEF_’
FT_ERRORDEF_( DEF_In_Glyf_Bytecode, 0x9C,
^~~~~~~~~~~~
/usr/include/freetype2/freetype/fterrdef.h:235:17: note: (near initialization for ‘ft_errors[75].msg’)
"found FDEF or IDEF opcode in glyf bytecode" )
^
../pango/pangoft2.c:537:38: note: in definition of macro ‘FT_ERRORDEF’
#define FT_ERRORDEF( e, v, s ) { e, s },
^
/usr/include/freetype2/freetype/fterrdef.h:234:3: note: in expansion of macro ‘FT_ERRORDEF_’
FT_ERRORDEF_( DEF_In_Glyf_Bytecode, 0x9C,
^~~~~~~~~~~~
|
|
|
|
|
|
|
|
| |
Now one can use cairo_set_font_options(), whereas before they had to
use pango_cairo_context_set_font_options(). If the latter is used,
it will override the former.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=790747
|
|
|
|
|
|
| |
For most cases, the is_char_break variable should be TRUE.
https://bugzilla.gnome.org/show_bug.cgi?id=789625
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=781857
|
|
|
|
|
|
| |
Support Line Break of Unicode 9.0.
https://bugzilla.gnome.org/show_bug.cgi?id=788115
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The baseline is the baseline of the first line of text in the layout, so
we can simply _get_extents_internal and use the extents of the first
line we get from that.
This is not a perfect solution (e.g. gtk+ calls pango_layout_get_extents
before a pango_layout_get_baseline call and the former calls
get_extents_internal anyway, so we compute the extents twice...) but it
improves the situation pointed out by the comment in
pango_layout_get_baseline.
https://bugzilla.gnome.org/show_bug.cgi?id=788643
|
|
|
|
|
|
|
|
| |
Since PangoLayout caches the amount of lines it contains in
->line_count, we can use this to pre-allocate an Extents array of the
appropriate size.
https://bugzilla.gnome.org/show_bug.cgi?id=788643
|
|
|
|
|
|
|
| |
Use the new _pango_layout_get_iter and _pango_layout_iter_destroy
instead.
https://bugzilla.gnome.org/show_bug.cgi?id=788643
|
|
|
|
|
|
|
| |
And add _pango_layout_get_iter as well as _pango_layout_iter_destroy
that can be used for internal, stack allocated PangoLayoutIters.
https://bugzilla.gnome.org/show_bug.cgi?id=788643
|
| |
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=787194
|
|
|
|
|
|
|
|
|
|
| |
Don't use --include-uninstalled, it's not needed with Meson because we
take care of inter-gir target dependencies.
Add girs and typelibs to the relevant libpango*_dep declared
dependencies so that they can be used via subprojects.
https://bugzilla.gnome.org/show_bug.cgi?id=787414
|
|
|
|
|
|
|
|
| |
Like the autotools builds, build the .rc files for the PangoCairo,
PangoFT2, PangoWin32 and Pango DLLs so that people can see the version
info more easily.
https://bugzilla.gnome.org/show_bug.cgi?id=783274
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=786887
|
|
|
|
|
|
| |
Skip the space characters in sentence start/end.
https://bugzilla.gnome.org/show_bug.cgi?id=785978
|
|
|
|
|
|
|
| |
Behdad pointed out that I didn't get it right for
flags and for sequences ending in a skin tone modifier.
Fix that.
|
|
|
|
|
|
|
|
| |
We want to delete the entire cluster if it is an Emoji.
To do so, look at prev_GB_type to find Emoji.
This fixes backspacing for sequences like
"man health worker" or "family: man, woman, boy, girl".
|
|
|
|
|
|
|
|
|
|
| |
ZWJ is treated as its own class in TR29, and us lumping
them together and then manually checking wc == 0x200d in
various places was causing us to inadvertedly inserting
grapheme breaks in the middle of Emoji ZWJ sequences
where they are not suppose to be.
Add test cases to verify this.
|
|
|
|
|
| |
Messed up whitespace makes this unwieldy function
even harder to read.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cairo's CGFont backend already handles scaling fonts to the display
resolution, so scaling to the screen screen resolution in Pango's
CoreText backend generates double-sized text on a Retina display.
The layout test depended on providing a (bogus) resolution of 96DPI and
scaling the font to it in order to obtain the "expected" layout
results. This is replaced by adjusting the font size in test-layout.c
if Pango is compiled for CoreText.
https://bugzilla.gnome.org/show_bug.cgi?id=782393
|
|
|
|
|
|
|
|
|
|
|
|
| |
The FriBiDi code uses #if rather than #ifdef, which pedantic compilers
warn about if the macro is undefined. The new Meson build sets
-Werror=undef, promoting these warnings to failures, and making CI
systems using certain compiler versions (in this case, Debian Jessie)
sad.
Signed-off-by: Philip Withnall <withnall@endlessm.com>
https://bugzilla.gnome.org/show_bug.cgi?id=786192
|
|
|
|
|
| |
This is necessary to make some emoji sequences shape
and render correctly.
|
|
|
|
| |
Patch from Harioum Pratap Singh.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From a 2014 HarfBuzz commit:
commit 763e5466c0a03a7c27020e1e2598e488612529a7
Author: Behdad Esfahbod <behdad@behdad.org>
Date: Sat Aug 2 16:17:44 2014 -0400
Make it easier to use HB_BUFFER_FLAG_BOT/EOT
Previously, we expected users to provide BOT/EOT flags when the
text *segment* was at paragraph boundaries. This meant that for
clients that provide full paragraph to HarfBuzz (eg. Pango), they
had code like this:
hb_buffer_set_flags (hb_buffer,
(item_offset == 0 ? HB_BUFFER_FLAG_BOT : 0) |
(item_offset + item_length == paragraph_length ?
HB_BUFFER_FLAG_EOT : 0));
hb_buffer_add_utf8 (hb_buffer,
paragraph_text, paragraph_length,
item_offset, item_length);
After this change such clients can simply say:
hb_buffer_set_flags (hb_buffer,
HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT);
hb_buffer_add_utf8 (hb_buffer,
paragraph_text, paragraph_length,
item_offset, item_length);
Ie, HarfBuzz itself checks whether the segment is at the beginning/end
of the paragraph. Clients that only pass item-at-a-time to HarfBuzz
continue not setting any flags whatsoever.
Another way to put it is: if there's pre-context text in the buffer,
HarfBuzz ignores the BOT flag. If there's post-context, it ignores
EOT flag.
|
|
|
|
|
|
|
| |
The example code is not correctly escaped, and gtk-doc has become
slightly more strict. This is a good chance to port this bit of the API
reference to Markdown, and avoid all issues in a future without inlined
XML.
|
| |
|
|
|
|
| |
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=785566
|
|
|
|
|
|
| |
Ported from Chromium.
Not hooked yet.
|
|
|
|
|
|
|
| |
Re-write the code for Sentence Boundary,
and use the code style like Grapheme Boundary and Word Boundary.
https://bugzilla.gnome.org/show_bug.cgi?id=782813
|
|
|
|
|
|
|
| |
Improve Word Boundary Rule for Hebrew_Letter, Single_Quote,
Double_Quote and Regional Indicator.
https://bugzilla.gnome.org/show_bug.cgi?id=782813
|
|
|
|
|
|
| |
Support Grapheme Boundaries Rule GB10, GB11, GB12 and GB13.
https://bugzilla.gnome.org/show_bug.cgi?id=782813
|
|
|
|
|
|
|
|
|
|
|
| |
Checked several emoji sequences, the sequence pattern is
like follows:
1. Use zero width joiner to combine two characters with
any width
2. Ignore the width of variation selector, tag and emoji modifier
for the purposes of finding a run or uniform-width characters.
https://bugzilla.gnome.org/show_bug.cgi?id=780669
|
|
|
|
|
|
| |
The keyword is called symbol_prefix, not symbols_prefix.
https://bugzilla.gnome.org/show_bug.cgi?id=785296
|