summaryrefslogtreecommitdiff
path: root/pango
Commit message (Collapse)AuthorAgeFilesLines
* Fix multilib issue in pango-enum-types.h.templateAkira TAGOH2017-08-301-1/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=786887
* Fix pango_default_break function for sentence start/endPeng Wu2017-08-301-10/+29
| | | | | | Skip the space characters in sentence start/end. https://bugzilla.gnome.org/show_bug.cgi?id=785978
* Fix backspacing for more Emoji sequencesMatthias Clasen2017-08-171-1/+4
| | | | | | | Behdad pointed out that I didn't get it right for flags and for sequences ending in a skin tone modifier. Fix that.
* Fix backspace-deletes-character for EmojiMatthias Clasen2017-08-151-3/+11
| | | | | | | | 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".
* break: Stop lumping ZWJ with ExtendMatthias Clasen2017-08-151-11/+26
| | | | | | | | | | 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.
* break.c: Fix indentation a bitMatthias Clasen2017-08-151-97/+96
| | | | | Messed up whitespace makes this unwieldy function even harder to read.
* CoreText: Remove absolute size and scaling to screen resolution.John Ralls2017-08-155-65/+34
| | | | | | | | | | | | | 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
* mini-fribidi: Squash -Werror=undef failures due to use of #ifPhilip Withnall2017-08-141-0/+9
| | | | | | | | | | | | 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
* Support variation selectors for shapingMatthias Clasen2017-08-121-1/+22
| | | | | This is necessary to make some emoji sequences shape and render correctly.
* Bug 784243 - Pango gravity is not applied on markup with multiple spans.Behdad Esfahbod2017-08-111-3/+1
| | | | Patch from Harioum Pratap Singh.
* Update emoji data to version 5Behdad Esfahbod2017-08-111-10/+42
|
* Simplify hb_buffer_set_flags()Behdad Esfahbod2017-08-101-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* docs: Use Markdown instead of DocbookEmmanuele Bassi2017-08-091-9/+9
| | | | | | | 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.
* fix build with mesonAlberts Muktupāvels2017-08-011-0/+1
|
* Choose emoji font for color emojiBehdad Esfahbod2017-07-312-11/+50
| | | | Fixes https://bugzilla.gnome.org/show_bug.cgi?id=785566
* Add data files and routines for emoji itemizationBehdad Esfahbod2017-07-314-0/+721
| | | | | | Ported from Chromium. Not hooked yet.
* Update pango_default_break function for Sentence BoundaryPeng Wu2017-07-311-443/+305
| | | | | | | 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
* Update pango_default_break function for Word BoundaryPeng Wu2017-07-311-16/+59
| | | | | | | Improve Word Boundary Rule for Hebrew_Letter, Single_Quote, Double_Quote and Regional Indicator. https://bugzilla.gnome.org/show_bug.cgi?id=782813
* Update pango_default_break function for Emoji ZWJ sequencePeng Wu2017-07-311-1/+116
| | | | | | Support Grapheme Boundaries Rule GB10, GB11, GB12 and GB13. https://bugzilla.gnome.org/show_bug.cgi?id=782813
* pango: Support emoji sequence in UnicodePeng Wu2017-07-291-0/+27
| | | | | | | | | | | 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
* Fix typo in meson build supportuserwithuid2017-07-251-2/+2
| | | | | | The keyword is called symbol_prefix, not symbols_prefix. https://bugzilla.gnome.org/show_bug.cgi?id=785296
* Don't check array for NULLTing-Wei Lan2017-07-181-1/+1
| | | | | | | Arrays can never be NULL, and doing unnecessary checking causes compilers to show warnings. https://bugzilla.gnome.org/show_bug.cgi?id=783428
* Cast enum to int before doing calculationTing-Wei Lan2017-07-181-2/+2
| | | | | | | | It seems that it is possible for compilers to use unsigned interger types to store enum values, so we should cast them to signed interger types before doing calculation to avoid getting unexpected results. https://bugzilla.gnome.org/show_bug.cgi?id=783428
* Drop an questionable G_UNLIKELYMatthias Clasen2017-06-301-1/+1
| | | | Owen and I agreed that this doesn't look right.
* Don't throw away text prematurelyMatthias Clasen2017-06-301-1/+1
| | | | | | | | | | | When calling into cairo to render glyphs, we want to use show_text_glyphs and pass the text along, if the surface supports that operation. But here, we throw the text away prematurely and end up always end passing no text or clusters down to cairo. https://bugzilla.gnome.org/show_bug.cgi?id=784394
* trivial: fix a typoMatthias Clasen2017-06-301-1/+1
| | | | s/bytess/bytes/ in a warning.
* Ignore undefined macros when importing freetype / 2Emmanuele Bassi2017-05-312-0/+9
| | | | Missing inclusions of freetype via Cairo.
* Ignore undefined macros when importing freetypeEmmanuele Bassi2017-05-313-0/+13
| | | | | | Recently, freetype added checks for various options and forgot to check all combinations. This breaks building projects including freetype.h and using -Werror=undef.
* [break-thai] Fix two bugs in libthai glue layerBehdad Esfahbod2017-05-231-1/+6
| | | | | | | | | | | | | | | | | | | First bug is, we were passing as count to th_brk, the UTF-8 length instead of TIS length. Ouch! I'm not sure how this was never caught... The other one was, break-thai was possibly marking a position is_line_break when break.c has already set it to is_char_break=FALSE. This broke the invariant that if a position is line-break, then it must be char-break as well. This, in turn was hitting assertions in certain conditions. Hit it with this for example: $ ./pango-view --text 'ส์" (S' --width 43 --font 156px Note that in a correct world the Latin part of that string should not reach break-thai.c at all, but that's not how pango-layout.c breaks right now. See comment before pango_break() call in pango-layout.c.
* Unmark private symbols as exportedEmmanuele Bassi2017-05-232-3/+0
| | | | | | | | Commit ce097c062ea079bf7888d2b2f1f7b17d34f976b6 was a bit too eager to mark symbols as public, and marked some internal functions as exported. If a symbol has an underscore prefix it generally means it's not meant to be public.
* meson: Remove the pango enums type from the sub-librariesEmmanuele Bassi2017-05-231-5/+5
| | | | | | | | | Sub-libraries need to be built after pango-enum-types.h has been generated; we already have a transitive dependency on the header through libpango_dep, so we do not need to add the header to the list of sources. This avoids symbols leaking in the sub-libraries.
* Don't change fonts for variation selectorsBehdad Esfahbod2017-05-221-1/+6
| | | | | Fixes https://bugzilla.gnome.org/show_bug.cgi?id=781123 Patch from Takao Fujiwara.
* meson: Generate correct sonamesJan Alexander Steffens (heftig)2017-05-221-0/+5
| | | | | "soversion:" is for the version placed in the soname. The full library revision goes into "version:". This affects the symlinks, too.
* meson: Use only spaces for indentJan Alexander Steffens (heftig)2017-05-221-8/+8
| | | | This was an inconsistent mix of tabs and spaces.
* Use the appropriate symbols for the version stringEmmanuele Bassi2017-05-221-1/+1
| | | | | We need to use the `@...@` pattern so that Meson can replace the symbols.
* build: Drop the 'lib' prefix from shared librariesEmmanuele Bassi2017-05-221-4/+4
| | | | Meson adds it by itself, where appropriate.
* meson: Add a few missing things, minor fixes, TODONirbheek Chauhan2017-05-192-6/+4
|
* build: Add Meson build systemEmmanuele Bassi2017-05-193-0/+392
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Meson is a meta build system that is: - fast - simpler to understand and use - portable to multiple platforms through different backends - well integrated with the GNOME platform - well maintained Using Meson allows us to build Pango much more quickly, and on all the platforms we currently target, without any loss of functionality, compared to Autotools. Some timing comparisons with hot ccache for both build systems: * autogen.sh: * meson real 0m11.149s real 0m2.525s user 0m8.153s user 0m1.609s sys 0m2.363s sys 0m1.206s * make -j$(($(nproc) + 2)) * ninja real 0m9.186s real 0m3.387s user 0m16.295s user 0m6.887s sys 0m5.337s sys 0m1.318s -------------------------------------------------------------- * autotools * meson + ninja real 0m27.669s real 0m5.772s user 0m45.622s user 0m8.465s sys 0m10.698s sys 0m2.357s System: Intel Core i7-7500U, SSD, 16GB of RAM
* ft2: Silence a compiler warningEmmanuele Bassi2017-05-191-1/+1
|
* Add prototype for _pango_color_parse_with_alpha()Emmanuele Bassi2017-05-193-13/+13
| | | | | | | | It's used in pango-markup.c and pango-color.c, so it should have an internally-available prototype, instead of an `extern` declaration at the point of use. This also avoids a compiler warning for a missing prototype.
* Correctly implement version macros for PangoEmmanuele Bassi2017-05-191-128/+135
| | | | | | | | | | | | | First of all, we need to define `PANGO_UNAVAILABLE`, as it's missing a definition, and the only reason why nobody caught this is because we're building without -Wundef, and clearly nobody attempted using min-required/max-allowed with Pango. Additionally, we really need a way to disable deprecation warnings from the compiler. The complete implementation of the version macros for GLib-based libraries includes both items above.
* Don't use deprecated hb_font_funcs_set_glyph_func()Behdad Esfahbod2017-04-171-5/+6
|
* Avoid a compiler warningMatthias Clasen2017-04-081-1/+1
| | | | | The compiler complains that rightmost_space may be used uninitialized. And it may be right.
* docs: Fix some introspection annotation syntaxPhilip Withnall2017-04-083-4/+4
| | | | | | Signed-off-by: Philip Withnall <withnall@endlessm.com> https://bugzilla.gnome.org/show_bug.cgi?id=778663
* docs: Add (skip) annotation to some non-introspectable deprecated funcsPhilip Withnall2017-04-082-6/+6
| | | | | | | | | To make it a bit more explicit that there’s no need to worry about introspecting them. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://bugzilla.gnome.org/show_bug.cgi?id=778663
* docs: Add a few missing (transfer) annotationsPhilip Withnall2017-04-082-4/+5
| | | | | | | | | This should fix a few scanner warnings, but this is not an attempt to fix them all. Signed-off-by: Philip Withnall <withnall@endlessm.com> https://bugzilla.gnome.org/show_bug.cgi?id=778663
* pango-utils: Fix non-escaped \r\n line endings in pango_read_line()Philip Withnall2017-04-081-1/+2
| | | | | | | | | | | | The handling for \r or \r\n line endings in pango_read_line() was broken. It should have discarded the \r or \r\n, but was only doing this for \n or \n\r. The condition (c == EOF) could never have been reached. Coverity ID: 1391696 Signed-off-by: Philip Withnall <withnall@endlessm.com> https://bugzilla.gnome.org/show_bug.cgi?id=778816
* attributes: Make alpha work without colorMatthias Clasen2017-04-081-8/+29
| | | | | | | Improve the behavior of the cairo renderer to take alpha into account even if no color specified. https://bugzilla.gnome.org/show_bug.cgi?id=773767
* Win32: Remove "uncolored" from docsNicolas Hake2017-04-071-2/+2
| | | | | | | Since win32_render_layout and win32_render_layout_line now support rendering in color, that word no longer applies. https://bugzilla.gnome.org/show_bug.cgi?id=768679
* Win32: Fix background rect boundsNicolas Hake2017-04-071-2/+2
| | | | | | | | Rectangle() uses x1, y1, x2, y2 coordinates instead of x, y, w, h. Fix the coordinates passed to the function so it draws the background in the correct location. https://bugzilla.gnome.org/show_bug.cgi?id=768679