What's New in GTK-Perl 2.14
This new stable series of Glib has a completely new object type mapping algorithm, improves the Glib::KeyFile API, adds two new functions related to displaying filenames, and fixes several bugs.
New object type mapping algorithm
To translate the GType hierarchy from C to Perl, Glib maps GTypes like GtkWidget to Perl package names like Gtk2::Widget and populates @Gtk2::Widget::ISA with the package names of GtkWidget's parents (and the package names for the interfaces the type implements). In previous versions, Glib did that as early as it could. When it encountered unknown types, it just ignored them. This worked well for quite some time, but more and more problems with that approach surfaced eventually, one of which was the GInitiallyUnowned issue. To fix those issues, we devised a new strategy that creates the class hierarchy on demand and automatically registers unknown types with unique package names.
Improvements of the Glib::KeyFile API
Several methods in the Glib::KeyFile API now allow undef for certain arguments.
New functions for displaying filenames
The new functions Glib::filename_display_name and Glib::filename_display_basename convert filenames in filesystem encoding to UTF-8. They are intended for failsafe display of filenames.
A reference counting bug could cause Perl wrappers to point to dead C objects. A patch from Steven Walter fixes this issue.
When fetching properties which contain a Glib::Boxed object, it sometimes happened that we were holding on to dead pointers. We now always copy the boxed objects to avoid this.
If the Perl module Cairo is found during compilation, support for GDK's and Pango's cairo glue will be enabled. That means you can now do your drawing with Cairo's hot API.
Natively-scrollable widgets in Perl
It is now possible to implement custom widgets that are natively scrollable.
This release adds Gtk2::AboutDialog::[gs]et_wrap_license, Gtk2::Dnd::set_icon_name, Gtk2::Gdk::Pixbuf::save_to_buffer, and most of the missing functions of GDK's X11 API.
Gnome2::VFS 1.060 adds Add Gnome2::VFS::Address::equal, Gnome2::VFS::Address::match, Gnome2::VFS::get_slow_mime_type, Gnome2::VFS::get_mime_type_for_name, and Gnome2::VFS::get_mime_type_for_name_and_data.
This release adds Gnome2::GConf::Engine::get_for_addresses.