Pango-1.15.1 released (unstable)
Posted on: 12/05/2006 11:00 AM

Pango-1.15.1 is now available for download at:

bb24f4fd3d303e84827f852b38a682f7 pango-1.15.1.tar.bz2
3d2bd774728c11728e15ba429c67e6d5 pango-1.15.1.tar.gz

This is a development release leading up to Pango-1.16.0, which will be released just in time for GNOME-2.18.


* This is unstable development release. While it has had fairly extensive testing, there are likely bugs remaining to be found. This release should not be used in production.

* Installing this version will overwrite your existing copy of Pango. If you have problems, you'll need to reinstall Pango-1.14.x

* Bugs should be reported to

About Pango

Pango is a library for layout and rendering of text, with an emphasis on internationalization. Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the context of the GTK+ widget toolkit. Pango forms the core of text and font handling for GTK+-2.x.

Pango is designed to be modular; the core Pango layout engine can be used with different font backends. There are three basic backends, with multiple options for rendering with each.

- Client side fonts using the FreeType and fontconfig libraries. Rendering can be with with Cairo or Xft libraries, or directly to an in-memory buffer with no additional libraries.

- Native fonts on Microsoft Windows using Uniscribe for complex-text handling. Rendering can be done via Cairo or directly using the native Win32 API.

- Native fonts on MacOS X, rendering via Cairo.

The integration of Pango with Cairo ( provides a complete solution with high quality text handling and graphics rendering.

Dynamically loaded modules then handle text layout for particular combinations of script and font backend. Pango ships with a wide selection of modules, including modules for Hebrew, Arabic, Hangul, Thai, and a number of Indic scripts. Virtually all of the world's major scripts are supported.

As well as the low level layout rendering routines, Pango includes PangoLayout, a high level driver for laying out entire blocks of text, and routines to assist in editing internationalized text.

More information about Pango is available from Bugs should be reported to

Pango 1.15 depends on version 2.12.0 or newer of the GLib library and version 1.2.2 or newer of the cairo library (if the cairo backend is desired); more information about GLib and cairo can be found at and respectively.

Overview of changes between 1.15.0 and 1.15.1
* Add Thai langauage engine. (currently makes tests/testboundary fail.)
* Add Lao and improved Thai sample text.
* Improved Indic module.
* Output correct path for hexboxes in pango_cairo_layout_path().
* Implement get_resolution method for the FT2 fontmap. Shouldn't make any difference whatsoever. Open a bug if it does.
* Misc small fixes.

* Optimizations:
- Rework PangoLayout algorithms to avoid calling a recursive call to
pango_layout_get_extents(). Avoids one pango_font_get_glyph_extents()
call per glyph per layout rendering. We now make 2 such calls.
- Don't cache run_logical_rect in PangoLayoutIter.
Avoids one pango_font_get_glyph_extents() call per glyph per layout
rendering. We are down to 1 now.
- Cache line extents. This avoids the final pango_font_get_glyph_extents
call per glyph per layout rendering. Now we don't make any
pango_font_get_glyph_extents() calls when rendering a layout (some
conditions apply)!
internal uses, that is, just a NULL-check.
- Use simple, fast, casts instead of PANGO_CAIRO_*() macros where the
object cannot have reached us if it wasn't of the right type.

* Bugs fixed in this release:
Bug 135683 =E2=80" Cache glyphstring extents
Red Hat Bug 211964: [ta] Rendering issue with Tamil
Patch from LingNing Zhang
Red Hat Bug 213632: ZWJ (200d) and ZWNJ (200c) showing same output
Patch from LingNing Zhang
Bug 371388 =E2=80" Add Thai langauage engine
Patch from Theppitak Karoonboonyanan
Bug 377975 =E2=80" bug in _pango_glyph_item_iter_next_cluster
Bug 369670 =E2=80" Checked g_free calls

Changes that also appeared between 1.14.7 and 1.14.8
* Improved thread-safety. Pango is still NOT thread-safe, but this fixes
lots of crashes using pangocairo from multiple threads.
* Fix out-of-bounds array access.
* Improved Indic shaper.
* Improved Arabic language engine.
* Choose shaper/font for unassigned Unicode codepoints.
* Build fixes.
* Bugs fixed in this release:
Bug 356666 =E2=80" pango is not thread-safe, nautilus does not honour th
Bug 352795 =E2=80" Bug in "checking Whether to write
dependencies into .pc files"
Bug 350132 =E2=80" backspacing doesn't work properly for Arabic
Bug 330407 =E2=80" Multiple dependant vowel signs (indic) displayed as o
Patch from LingNing Zhang

Behdad Esfahbod
04 December 2006

Printed from Linux Compatible (