GTK+ 2.91.0 released

GTK+ 2.91.0 is now available for download at:

694e887b946a3aa28af10f776bc6f79bc566d0e1be679783d4e7469bc728aeac  gtk
3c0a442d0a533fd423ef1802c3422eab8bab386000fd498d390f7a7de0fd983f  gtk

This is a development release leading toward 3.0.


 * GTK+ 3 will be parallel installable with GTK+ 2.x, and
   this release has been prepared to test this by renaming
   all .pc files, libraries, include paths, and so forth,
   to include a '3.0' component.

 * GTK+ 3 will remove deprecated API from the GTK+ 2.x series
   and make struct members unavailable that have been GSEALed
   in 2.x. Therefore, applications can be prepared for porting
   to GTK+ 3 by making sure that they build with
   and -DGSEAL_ENABLE. For more information about porting concerns,
   see the porting guide that is included in the API docs.

 * Bugs should be reported to

What is GTK+

GTK+ is a multi-platform toolkit for creating graphical user
interfaces. Offering a complete set of widgets, GTK+ is suitable for
projects ranging from small one-off tools to complete application

GTK+ has been designed from the ground up to support a range of
languages, not only C/C++. Using GTK+ from languages such as Perl and
Python (especially in combination with the Glade GUI builder) provides
an effective method of rapid application development.

GTK+ is free software and part of the GNU Project. However, the
licensing terms for GTK+, the GNU LGPL, allow it to be used by all
developers, including those developing proprietary software, without
any license fees or royalties.

Where to get more information about GTK+

Information about GTK+ including links to documentation can be
found at:

An installation guide for GTK+ 2.x is found at:

Common questions:


GTK+ is a large project and relies on voluntary contributions.
We are actively searching for new contributors in various areas
and invite everyone to help project development.
If you are willing to participate, please subscribe to the project
mailing lists to offer your help and read over our list of vacant
project tasks:

Overview of Changes from GTK+ 2.90.7 to 2.91.0

* The rendering cleanup work has landed. This is a large change that
  affects many APIs.
  - All GtkStyle functions have been changed to take a cairo_t argument
    instead of a window + area.
  - GdkPixmap is gone. APIs that took pixmaps are being replaced by ones
    that take pixbufs or cairo surfaces, or regions (where pixmaps were
    used as masks). In background handling, pixmaps have been replaced
    by cairo patterns, see gdk_window_set_background_pattern().
  - GdkColormap is gone. It is replaced by visuals, see
  - The ::expose-event signal on GtkWidget has been replaced by a
    ::draw signal.
  - gtk_widget_get_snapshot() has been removed. Instead, 
    gtk_widget_draw() can render a widget onto an cairo_t.

* The GtkSizeRequest interface has been merged into GtkWidget, and
  GtkCellSizeRequest has been merged into GtkCellRenderer. The wrapper
  functions have been renamed to include 'preferred', e.g
  gtk_size_request_get_width() is now gtk_widget_get_preferred_width()
  and gtk_cell_size_request_get_width_for_height() is now

* GtkObject has been removed. The ::destroy signal has been moved
  to GtkWidget. At the same time, GtkWidgetFlags have been removed,
  they already had getters and setters anyway.

* GtkWidget has gained generic alignment and padding properties:
  halign, valign, margin-left, margin-right, margin-top, margin-bottom
  These can be used instead of container-specific child properties or
  GtkMisc and GtkAlignment widgets.

* Container widgets can now let GTK+ handle border-width for them, using

* The GtkEditableClass struct has been renamed to GtkEditableInterface

* Mouse wheel scrolling has been removed from GtkNotebook

* The default policy for scrolled windows has been changed to

* Global url hooks have been removed from GtkAboutDialog and

* The global window creation hook has been removed from GtkNotebook

* The error handling in GDK has been modernized and avoids synchronizing
  X requests as much as possible

* Fixed Bugs:
 323904 GtkEditable header is slightly incorrect
 339745 Return value of gtk_link_button_set_uri_hook not usable
 468672 GTK_POLICY_AUTOMATIC should be the default policy...
 486839 Filechooser 'Places' items should not move up and down...
 601731 Drag and Drop from Workspace to Activities Overview
 617316 Move documentation to inline comments: GtkEditable
 621590 Add length to gtk_tree_path_get_indices
 623664 Missing accessors for gtk_menu_get_position_func{,_data}
 628829 Chain get_width_for_height default impl to vfunc...
 629177 Do not use deprecated gtk_widget_get_child_requisition()
 629277 Hanging because do_syntheszie_crossing_event is called...
 629387 Use gint16 for GtkBorder
 629598 Do not use deprecated gtk_widget_size_request()
 629608 Revamp and modernize X error traps
 629733 There is a misprint in the description of the gtk_check_...
 629748 Fails to build without XComposite
 629785 Do not use deprecated gtk_cell_renderer_get_size()
 630033 Improve tests for X error traps, fix two bugs
 630226 Removing tab scrolling from GtkNotebook
 630520 Don't try to unref event->dnd.context unconditionally...
 630521 Remove some remaining API warts from tab dnd api
 630532 invalid drop point in drag-data-received callback

Updated translations:
Simplified Chinese

Thanks to the people who contributed to this release:
Javier Jardón
Benjamin Otte
Havoc Pennington
Kristian Rietveld
Tristan Van Berkom
Milan Bouchet-Valat
Tor Lillqvist
Sebastian Dröge
Colin Walters
Johan Dahlin
Owen Taylor
Michael Natterer
Tomeu Vizoso
Florian Müllner
Christian Dywan
Claudio Saavedra
William Jon McCann
Jonh Wendell
Richard Hughes

October 1, 2010
Matthias Clasen

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