Pango-1.15.2 released [unstable]

Pango-1.15.2 is now available for download at:

3a57ff08498a210892fe665bf4812011  pango-1.15.2.tar.bz2
063c3ea8eb8931290546a197bd444e2a  pango-1.15.2.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.  The major change in this
release is addition of lots of new, useful, public API.  For details,
scroll down.


 * 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

Overview of changes between 1.15.1 and 1.15.2
* Engines:
  - Improved Hangul shaper engine
  - Improved Indic shaper and language engines
  - Require libthai >= 0.1.7 for the Thai language engine

* Optimizations:
  - Avoid some floating-point operations.  Should cut the number of float
    ops per expose event in pangocairo to a half.
  - Cache ink and logical extents for PangoLayout

* New Public API:

  - New, generated, public header file pango-features.h.  Included by
    pango.h.  Currently contains the version information.  In the future,
    can be expanded to define which backends have been enabled, etc.

  - Public macros and functions for compile- and run-time version checking:


    The scheme chosen here is a mixture of approaches taken by glib and cairo.
    The advantage over the glib model is that there are no public variables,
    but it still gives access to a string and numerical representation of the
    version number at compile- and run-time.
    The macros enable conditional compilation of code depending on newer Pango
    APIs, while the runtime functions allow refusing to run against old
    versions of the library.

  - New, readonly, version of methods that give read/write access to the
    internals of PangoLayout:


    These should be used when you do not intend to modify the run/line,
    which is most of the time the case.  The only exception known to me
    is Firefox that adjusts glyph widths to do justification.  Most other
    uses that do not write to the returned structs (or structs accessible from
    them) should be ported to the new readonly API to benefit from major
    optimizations (in this case, line extents caching).  The list includes,
    but is not limited to, Gtk+, SWT, ClassPath, gnome-applets, libgnomeprint,
    xmlroff, GtkMathView, Conglomerate, Dia, Anjuta, wxWindows, The Gimp, 
    and various other applications/libraries:

    Worth noting here is that, many uses of pango_layout_get_lines() can be
    replaced by a pango_layout_get_iter() that works both more elegantly and
    more efficiently.  The versioning macros introduced in this release can be
    used to make code use these new symbols without breaking compilation
    against older Pango (though, such code compiled with the new Pango cannot
    be run against an older Pango).

  - pango_language_get_default(): Note that, this does not make Pango
    fallback to the default language automatically (yet), but the user can
    use this function to set the default language of the locale on a context:

	  pango_context_set_language (context, pango_language_get_default());

    This essentially deprecates gtk_get_default_language().  The pango-view
    tool has been updated to use this feature, so it now respects $LANG when
    choosing fonts.

  - pango_color_to_string().

* Bugs fixed in this release:
	Bug 326099 – Setting width, indentation and ellipsizing doesn't work
		     as I would expect
	Bug 385478 – Fix tests on OPD platform
	Bug 319808 – Patch to let pango support artifical italic, bold and
		     bold italic styles for the fonts which don't have these styles.
		     Patch from James Su
	Bug 385321 – Worst case expansion for Sinhala
		     Patch from Harshula
	Red Hat Bug 211574: [hi/ml/si_LK] cursor naviation is wrong when
		     using ZWJ (200d)
		     Patch from LingNing Zhang
	Red Hat Bug 216424: [te_IN] pango - consonant + dependent vowel (ai)
		     Composed char is not rendering properly
		     Patch from LingNing Zhang
	Bug 373856 – Wish: Function to convert a GdkColor to a string
		     Patch from Matthew Barnes
	Red Hat Bug 216850: Issue in combination with vowels (ml_IN)
		     Patch from LingNing Zhang
	Bug 382437 – tests/testboundaries fails
	Bug 333982 – Fallback to $LANG whenever NULL PangoLanguage is used
		     Patch from LingNing Zhang

Behdad Esfahbod
20 December 2006

Attachment: signature.asc
Description: This is a digitally signed message part

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]