GTK+ 3.0 Released

GTK+ 3.0 is a major new version of GTK+, containing far too many changes to list them all here.

The major highlights include:

  • Cairo drawing throughout. GDK no longer wraps the antiquated X11 drawing API; we’ve made a clean break and exclusively rely on cairo for all our drawing needs now. This has also enabled us to remove several other X11-centric concepts such as GCs, colormaps and pixmaps.
  • Modern input device handling. The input device handling in GDK has long been a sadly neglected area. This has changed; with 3.0, GTK+ steps into the modern world of XI2 with full support for multiple pointers, keyboards and other gizmos.
  • A new theming API which sports a familiar CSS syntax for theme configuration and other improvements such as animated state transitions.
  • More flexible geometry management, with support for height-for-width, for both widgets and cell renderers.
  • Multiple backend support for GDK. With GTK+ 2.x, you had to recompile your application to have it work with a different GDK backend. In GTK+ 3, multiple GDK backends can be built into a single library and selected at runtime.
  • Easy application support. With the integration of D-Bus support in GIO, we could finally add a GtkApplication class that handles a lot of the platform integration aspects of writing an application, such as keeping track of open Windows, ensuring uniqueness, exporting actions, etc.
  • Of course, there’s some new widgets as well, such as a switch and an application chooser.

GTK+ is the work of hundreds of contributors, far too many to list them all here. But I want to take the time to thank some people who contributed in a major way:

  • Carlos Garnacho (Lanedo), for his work on XI2 support and the new theme system
  • Benjamin Otte (Red Hat), for his work on GDK and cairo drawing
  • Tristan Van Berkom (Openismus), for his work on geometry management
  • Colin Walters (Red Hat), for his work on GtkApplication
  • Ryan Lortie (Codethink), for his work on dconf, GSettings and GtkApplication
  • Javier Jardón, for tireless code, build and documentation cleanup

GTK+ 2.18 stable release

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

GtkInfoBar
A new widget to show a transient ‘message area’ inside a content pane. The API is similar to GtkDialog and supports theming for different message types (warnings, errors, etc)

GtkBuilder

  • Scale marks can be specified in builder markup
  • GtkAssistant action widgets can be added in builder markup

GtkLabel
GtkLabel can show embedded URLs, much like SexyUrlLabe

GtkEntry
GtkEntry has been refactored to follow the model-view pattern, with GtkEntryBuffer as model. One intended use case for this is to support ‘secure memory’ for password entries

File chooser

  • Backup files are hidden by default
  • GTK+ remembers the sorting state of the file list
  • File sizes are shown by default
  • The ‘Create Folder’ button can be disabled with the the ::create-folders property

Printing support

  • GTK+ supports authentication against CUPS servers
  • A backend for the PAPI printing system has been added
  • The file and lpr backends can print multiple pages per sheet
  • The file backend can produce svg files
  • GTK+ supports printing an application-defined ‘selection’ in addition to the usual page ranges
  • The print dialog can optinally include the page setup controls, avoiding the need for a separate page setup dialog in many situations

Theming support

  • The bullet character used in invisible entries can be set by themes with the ::invisible-char style property
  • The file chooser can show different icons for xdg user dirs. The icon names are folder-documents, folder-download, folder-music, folder-pictures, folder-publicshare, folder-templates and folder-video
  • The GtkInfoBar uses symbolic colors for theming its background color depending on the message type. The color names are info_fg_color, info_bg_color, warning_fg_color”, warning_bg_color, etc.

GDK changes
GDK has been rewritten to use ‘client-side windows’. This means that GDK maintains its own window hierarchy and only uses X windows where it is necessary or explicitly requested. Some of the benefits of this change are

  • Reduced flicker
  • The ability to do transformed and animated rendering of widgets
  • Easier embedding of GTK+ widgets, e.g. into Clutter scene graphs
  • See gdk-demo for some simple examples of client-side windows in action. See the documentation for information about possible problems when moving to client-side windows.

For more details and lists of fixed bugs, see the
announcements for the 2.17.x development releases: 2.17.0, 2.17.1, 2.17.2, 2.17.3, 2.17.4, 2.17.5, 2.17.6, 2.17.8, 2.17.9, 2.17.10, 2.17.11

Posted in GTK+, Stable. 1 Comment »

GTK+ 2.17.8 unstable release

This is a development release leading up to GTK+ 2.18.

Overview of Changes from GTK+ 2.17.7

  • Client-side windows
    • – various fixes to expose handlings
    • fix memory leaks
  • Minor API additions

    • New setter as part of the GSEAL effort: gtk_widget_set_allocation

11 bugs fixed in this release!

Posted in GTK+, Release, Unstable. Comments Off

GTK 2.17.6 unstable release

This is a development release leading up to GTK+ 2.18.

Overview of Changes from GTK+ 2.17.5

  • Client-side windows:
    • Several optimizations, such as client-side tracking of viewable windows
    • Clipping for drawing pixbufs on windows has been fixed
    • Rendering to large subwindows has been fixed
  • Changes that are relevant for translators:
    • Markup has been removed from several strings

12 bugs fixed in this release!

See the original announcement for more info and downloads.

Posted in GTK+, Release, Unstable. Comments Off

GTK+ 2.16.5 stable release

This is a bug fix release in the stable 2.16 series.

Overview of Changes from GTK+ 2.16.4

  • Fix a side-effect introduced by the fix for bug 586330 that caused all stock buttons to loose their mnemonics.

4 bugs fixed in this release!

See the original announcement for more info and downloads.

Posted in GTK+, Release, Stable. Comments Off

GTK+ 2.17.5 unstable release

This is a development release leading up to GTK+ 2.18.

Overview of Changes from GTK+ 2.17.4

  • Client-side windows: Quite a few fixes have happened for the win32 and directfb backends
  • GSEAL: Accessors have been added for sealed members in GtkCellRenderer and GtkWidget
  • Changes that are relevant for distributors: The jpeg2000 pixbuf loader is now optional. Pass –with-libjasper to configure to build it

13 bugs fixed in this release!

See the original announcement for more info and downloads.

Posted in GTK+, Release, Unstable. Comments Off

GTK+ 2.17.4 unstable release

This is a development release leading up to GTK+ 2.18.

Overview of Changes from GTK+ 2.17.3

  • GtkEntry now has model-view separation, with GtkEntryBuffer. One intended use case for this is to support ‘secure memory’ for password entries.
  • The print dialog can now optionally include the page setup controls, avoiding the need for a separate page setup dialog in many applications.
  • Coloring of visited links in GtkLabel can now be turned off, with the ::track-visited-links property.
  • Support for clipmasks in gdk_draw_pixbuf now works, this will introduce visual changes in code that uses clipmasks when drawing pixbufs. However, since this never worked that is unlikely to happen. Old code using gdk_pixbuf_render_threshold_alpha masks when rendering pixbufs will now produce truncated results at the edges.
  • A number of regressions from the client-side window merge have been fixed.

4 bugs fixed in this release!

See the original announcement for more info and downloads.

GTK+ 2.17.3 unstable release

This is a development release leading up to GTK+ 2.18.

Overview of Changes from GTK+ 2.17.2

  • GtkFileChooser: Shows the size column by default now
  • GtkStatusIcon: Has a title property, which can be used by ATs when they read status icons
  • GtkInfoBar:
    • The default theme now includes color definitions for infobars
    • The ::use-tooltip-style style property has been removed
  • GtkMountOperation now supports interaction during unmount operations.
  • The client-side windows branch has been merged; GDK now maintains its own window hierarchy client-side, and only uses X windows where unavoidable. Some of the benefits of this change are
    • Reduced flicker
    • The ability to do transformed and animated rendering of widgets
    • Easier embedding of GTK+ widgets e.g. into Clutter scene graphs

    This is a fundamental change to the way GDK works, so watch out for regressions.

12 bugs fixed in this release!

See the original announcement for more info and downloads.

Posted in GTK+, Release, Unstable. Comments Off

GTK+ 2.17.2 unstable release

This is a development release leading up to GTK+ 2.18.

Overview of Changes from GTK+ 2.17.1

  • GtkInfoBar: A new widget to show a transient ‘message area’ inside a content pane. The API is similar to GtkDialog and supports theming for different message types (warnings, errors, etc)
  • GtkFileChooser:

    • Improve path bar by ellipsizing long names and preventing vertical size changes
    • Backup files are now hidden by default
    • GTK+ remembers the file chooser sorting state now
  • GtkButtonBox: Implements the GtkOrientable interface now.
  • Printing: GTK+ supports printing an application-defined ‘selection’ now, in addition to usual page ranges.
  • Changes that are relevant for theme authors:

    • The new GtkInfoBar widget uses symbolic colors for theming its background color depending on the message type. By default, it uses the same background color as tooltips. This can be turned off with style property.
    • The GTK+ file chooser (as well as nautilus and other users of GIO icon information) can now show different icons for xdg user dirs. The icon names are folder-documents, folder-download, folder-music, folder-pictures, folder-publicshare, folder-templates, folder-videos, with an automatic fallback to the standard folder icon.

27 bugs fixed in this release!

See the original announcement for more info and downloads.

GTK+ 2.16.2 stable release

This is a bug fix release in the 2.16 series.

16 bugs fixed in this release!

See the original announcement for more info and downloads.

Posted in GTK+, Release, Stable. Comments Off