GTK+ 2.12 released

GTK+ 2.12.0 is now available for download at: 

gtk+-2.12.0.tar.bz2   md5sum: e9c280afec29b11772af5a7c807abf41
gtk+-2.12.0.tar.gz    md5sum: f2534dfaabb3dcff6da04976ef8d486e

Release notes are available at:

Note that due to a mistake on my part, this version of GTK+
validates all icon caches when they are mapped, which causes
considerable disk activity and slows application startup.
To avoid this problem, distribution packagers should include 
the change from svn trunk to only validate icon caches when 
debugging. See

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 suites.

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

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. GTK+ is the
only 100% free-of-cost open source industrial-strength GUI
toolkit available today.

Since its origins as the toolkit for the GNU Image
Manipulation Program (GIMP), GTK+ has been used in a wide
range of software. Notably, GTK+ is the foundation of the
GNOME desktop; GTK+ 2.12 will be incorporated into version
2.20 of the GNOME desktop. 

What's new in GTK+ 2.12

GTK+ 2.12 adds significant new functionality while maintaining
source and binary compatibility with GTK+ 2.10. Highlights of
new features and improvements in GTK+ 2.12 are:


 2.12 brings a completely new tooltip implementation which
 allows many things that were not possible before. Tooltips
 can be placed on insensitive widgets and on treeviews.
 They can contain rich markup, or even arbitrary widgets.

Interface builder support

 GtkBuilder can generate user interfaces from XML descriptions 
 which are very similar to glade files. Going beyond the
 capabilities of glade, GtkBuilder can also construct objects
 which are not widgets, such as tree models. To ease the 
 transition from libglade to GtkBuilder, GTK+ includes a tool 
 that can convert glade files to GtkBuilder files.

Keyboard navigation

 Keyboard navigation has seen quite a bit of work this cycle;
 with an eye towards consistent handling of keynav failures and
 better support for platforms with no or very poor keyboards,
 like the Maemo platform, or phones. Since much of this is
 about adapting GTK+ to the platform it runs on, a lot of this
 is based on settings.

New widgets and objects

 * GtkVolumeButton, a volume control for multimedia applications
 * GtkScaleButton, the base class for GtkVolumeButton
 * GtkRecentAction, an action that represents a recent-files list

Changes in the file chooser
 The file chooser search functionality now, with backends for
 several indexers, like beagle, tracker and Spotlight. Recent
 files also appear in the file chooser. The location of the
 Desktop folder is no longer hardcoded, but determined by the
 xdg-user-dirs mechanism.

Changes in text view and entry widgets
 The text widgets now use a block cursor in overwrite mode.
 The cursor color can be controlled by the application.

gdk-pixbuf changes

 * Exif orientation information is handled
 * Support Sun medialib for hardware acceleration

For more details and lists of fixed bugs, see the
announcements for the 2.11.x development releases:

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.11.6 to 2.12.0

 * GtkTooltips
 - All widgets have been ported to the new tooltips code
 - Tooltips are disabled in touchscreen mode

 * GtkBuilder
 - Support custom tabs in GtkPrintUnixDialog

 * Bugs fixed:
 459561 critical warnings with custom tooltips
 461648 GdkWindowQueueItem::serial overflow
 463773 Openoffice and flash run into a deadlock when used with KDE
 468801 thunar segfaults when selecting targa image
 473441 [patch] Ungrab windows when gdk_window_destroy() is calle...
 473954 gnome-background-properties: crash on drag-n-drop to "Add...
 461945 totem outputs errors in terminal
 348493 _gdk_quartz_copy_to_image needs implementing for pixmaps
 405868 Missing implementation of gdk_window_get_geometry()
 441219 Do not allow moving cursor to separators
 447214 rename the tips_data_list field back
 451202 New tooltips API has too long default timeout
 451397 Use new tooltip API in gtk+
 452225 check and option mark drawing is a mess of inconsistency
 457642 tooltips on notebook's tab labels
 458088 Improve mouse cursor for paned widgets
 458102 GtkScrolledWindow doesn't redraw when gtk-scrolled-window...
 458280 remove set-toolip handler from menutoolbutton
 458298 broken cursor movement with inline selection
 459459 Missing implementation of gdk_window_set_decorations() an...
 459515 gtk_menu_key_press() buglets
 459566 update testtooltips
 459667 Missing implementation of gdk_window_set_keep_above and g...
 460272 GtkFrame publishes incorrect defaults for "label-xalign"
 460534 No expose events if input swamps main loop with scrolled ...
 461225 gtk_tree_view_set_tooltip_cell() documentation: cell
 463907 'Recent Documents' is broken in gnome-panel 2.19.5
 464528 gdk_rectangle_union() and gdk_rectangle_intersect() shoul...
 465039 "keynav-failed" signal not emitted when treeview has just...
 467003 tooltips do not pick up theme changes
 467117 Documentation for the GtkPaned key binding signals
 467414 gtkcupsutil.c won't build with cups 1.3
 468055 Incorrect compose mapping for capital U with macron
 468245 Tooltip timer doesn't get reset when mouse leaves into ot...
 469214 Recently used blocks side-panel browsing until loaded
 469374 menu accelerators don't work
 469395 make dist failure
 471132 Highlighting a suggestion with the keyboard changes the U...
 471215 Cursor drawing broken
 472974 gtk-builder-convert doesn't set correctly the tab label f...
 472981 make gtk-builder-convert not remove some empty properties
 356630 Print to file dialog suggests "output.pdf" even for ps ou...
 447883 PATCH Documentation about SVN in HACKING and README.cvs-c...
 459340 GtkContainer API documentation refers deprecated gtk_widg...
 459732 build system: cups detection with only cups-config might ...
 460207 there are still references to deprecated gdk_pixbuf_rende...
 461483 Wrong check in gtk_window_group_remove_window
 472643 gtk_builder_add_from_file: *filename marked as constant b...
 474696 ToolbarContent should use GSlice
 459313 A few functions that don't appear in 2.12 new symbols
 468832 crash while reading ANI file
 470033 MS-Windows Theme doesn't apply styling to gtknotebooks wh...
 473340 gtk_print_operation_get_error() is listed twice
 473463 GtkButton doesn't have a GdkWindow like the docs say it does
 474282 Dead code in gtkmisc.c
 472951 gtkprintunixdialog should support custom tabs as buildable
 383003 Dragging text including non-ascii chars from epiphany to ...
 449371 Open with menu has no effect
 404541 GtkIconView crashes when I select icons with rubberband w...
 467324 Iter swapping causes segmentation fault
 475158 Random crash while scrolling trough notebook tabs
 450032 GtkRecentAction should have defaults
 458283 wrong tooltip on menutoolbutton
 467717 Extra trailing comma after last enum definition
 467719 config.h should always be included first if using AC_SYS_...
 474897 rendering problem with latest gtk+
 475400 Fix a typo in gtkentry.c
 436576 GtkFileChooserButton title from supplied dialog
 475439 gtk/gtksearchenginesimple.h is missing a G_BEGIN_DECLS
 105895 Please add common keybindings for the TreeView
 306445 stock icon for the "open recent" menu
 449371 Open with menu has no effect
 426246 "Spurious" expose events during asynchronous GtkWindow re...
 436576 GtkFileChooserButton title from supplied dialog
 474897 rendering problem with latest gtk+
 475400 Fix a typo in gtkentry.c
 476688 scale button uses wrong value type in getter
 476665 gtkcellrendereraccel missing property getter
 476689 gtktreeview tooltip column property getter uses wrong val...

 * Updated translations
 - Bulgarian (bg)
 - Bengali (bn_IN)
 - Danish (da)
 - German (de)
 - Canadian English (en_CA)
 - Spanish (es)
 - Estonian (et)
 - Basque (eu)
 - Finnish (fi)
 - French (fr)
 - Irish (ga)
 - Gujarati (gu)
 - Hungarian (hu)
 - Italian (it)
 - Japanese (jp)
 - Kannada (kn)
 - Macedonian (mk)
 - Malayalam (ml)
 - Norwegian bokmål (nb)
 - Dutch (nl)
 - Oriya (or)
 - Polish (pl)
 - Portugese (pt)
 - Brazilian Portugese (pt_BR)
 - Russian (ru)
 - Albanian (sq)
 - Serbian (sr, sr Latn)
 - Swedish (sv)
 - Telugu (te)
 - Thai (th)
 - Ukrainian (uk)
 - Vietnamese (vi)

The GTK+ Team:

 Jonathan Blandford, Hans Breuer, Kristian Rietveld, 
 Matthias Clasen, Tim Janik, Tor Lillqvist, Federico Mena Quintero, 
 Søren Sandmann, Manish Singh, and Owen Taylor

Special thanks to:
Kris Rietveld, for his work on the new tooltips API
Johan Dahlin, for his work on GtkBuilder
Michael Natterer, for his keybinding work
Richard Hult and Mikael Hallendal, for the OS X port
Emmanuele Bassi, for integrating search and recent files
  support in the file chooser

Thanks to everybody else who has contributed to GTK+ 2.12.0
(for contributors to the 2.11.x releases, see the links above)
Aaron Crane, Albert Chin, Alexander Larsson, Andrew Cowie, 
Attilio Fiandrotti, Behdad Esfahbod, Benjamin Berg, 
Brian Bober, Carlos Garnacho, Christian Persch, Christophe 
Fergeau, Claude Paroz, Claudio Saavedra, Cody Russell, 
Daniel Atallah, Dennis Jacobfeuerborn, Fernando Herrera, 
Frederic Peters, Gian Mario Tagliaretti, Guillaume Cottenceau, 
Hui Wang, Jan Arne Petersen, Josselin Mouette, Michal Luczaj, 
Murray Cumming, Nigel Tao, Paolo Borelli, Ross Burton, 
Sebastien Bacher, Stefan Gehn, Stefan Kost, Sven Neumann, 
Szilard Pfeiffer, Thomas Rydzynski, Tor Lillqvist, Tristan 
Van Berkom, William Pitcock, Wouter Bolsterlee, Xan Lopez, 
Yesudeep Mangalapilly, Yevgen Muntyan 

Thanks to all translators:
Zuza Software Foundation (Afrikaans)
Ge'ez Frontier Foundation (Amharic)
James Johnson (Old English)
Khaled Hosny (Arabic)
Amitakhya Phukan (Assamese)
Amir Hedayaty (Iranian Azerbaijani)
Mətin Əmirov (Azerbaijani)
Ihar Hrachyshka (Belarusian Latin)
Vital Khilko (Belarusian)
Alexander Shopov (Bulgarian)
Runa Battacharjee (Bengali India)
Thierry Vignaud (Breton)
Kenan Hadžiavdić (Bosnian)
Jordi Mallach (Catalan)
Jakub Friedl (Czech) 
Rhys Jones (Cymraeg)
Ask Hjorth Larsen (Danish)
Hendrik Richter (German) 
Mindu Dorji (Dzongkha)
Kostas Papadimas (Greek)
Adam Weinberger (Canadian English)
David Lodge (British English)
Antono Vasiljev (Esperanto)
Jorge González (Spanish)
Ivar Smolin (Estonian)
Iñaki Larrañaga Murgoitio (Basque)
Roozbeh Pournader (Persian)
Ilkka Tuohela (Finnish) 
Claude Paroz (French)
Seán de Búrca (Gaeilge)
Ignacio Casal Quinteiro (Galego)
Ankit Patel (Gujarati)
Yair Hershkovitz (Hebrew)
Rajesh Ranjan (Hindi)
Robert Sedak (Croatian)
Gabor Kelemen (Hungarian)
Norayr Chilingaryan (Armenian)
Robert Brady (Interlingua)
Mohammad DAMT (Indonesia)
Richard Allen (Icelandic)
Luca Ferretti (Italian)
Takeshi AIHANA (Japanese)
Vladimer Sichinava (Georgian)
Shankar Prasad (Kannada)
Changwoo Ryu (Korean)
Erdal Ronahi (Kurdish)
Mathieu van Woerkom (Limburgish)
Žygimantas Beručka (Lithuanian)
Raivis Dejus (Latvian)
Wesley Parish (Māori)
Arangel Angov (Macedonian)
Ani Peter (Malayalam)
Sanlig Badral (Mongolian)
Rahul Bhalerao (Marathi)
Hasbullah Bin Pit (Projek Gabai)
Kjartan Maraas (Norwegian Bokmal)
Mahesh subedi (Nepali)
Tino Meinen (Dutch)
Åsmund Skjæveland (Norwegian Nynorsk)
Zuza Software Foundation (Northern Sotho)
Yannig MARCHEGAY (Kokoyaya) (Occitan)
Subhransu Behera (Oriya)
A S Alam (Punjabi)
Tomasz Dominikowski (Polish)
Og Maciel (Brazilian Portuguese)
Duarte Loreto (Portuguese)
Mişu Moldovan (Română)
Nickolay V. Shmyrev (Russian)
Steve Murphy (Kinyarwanda)
Danishka Navin (Sinhala)
Marcel Telka (Slovak)
Matic Žgur (Slovenian)
Laurent Dhima (Albanian)
Bojan Suzic (Serbian)
Goran Rakić (Serbian)
Горан Ракић (Serbian)
Daniel Nylander (Swedish)
Felix (Tamil)
Sunil Mohan Adapa (Swecha)
Theppitak Karoonboonyanan (Thai)
Gurban Mühemmet Tewekgeli (Turkmen)
Baris Cicek (Turkish)
Albert Fazlí (Tatarish) 
Maxim Dziumanenko (Ukrainian) 
Zack Ajmal (Urdu)
Mashrab Kuvatov (Uzbek) 
Clytie Siddall (Vietnamese)
Pablo Saratxaga (Walloon)
Canonical Ltd (Xhosa)
Raphael Finkel (Yiddish) 
Yang Zhang (Simplified Chinese)
Woodman Tuen (Chinese (Hong Kong))
Woodman Tuen (Chinese (Taiwan))

September 14, 2007
Matthias Clasen

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