What is GTK?
GTK is the multi-platform widget toolkit that originates from GIMP. Gnome developers maintain and use it for creating the graphical user interface that we all use everyday. GTK follows the same version numbering as Gnome, and all of Gnome’s official applications and tools use it in its latest version, so Gnome 3.8 will be using GTK 3.8.
- Per-widget opacity with gtk_widget_set_opacity
This new ability of GTK came in the development version 3.7.10 and allows developers to set an opacity to any GtkWidget, instead of just toplevels that was the case till then.
- Frame synchronization with mutter for smooth animations and resizing
This means applications will throttle their drawing cycle to what the compositor is drawing, and the compositor will never render half-updated windows, for seamless resizing and improved smoothness in drawing. For more detailed technical info about the frame synchronization you can check this blog and this post.
- Single-click mode for tree and icon views
- Possible to reuse accessible implementations
- Multi-application Broadway support with broadwayd
- Better font support
The default font is no longer handled like a custom style sheet that overrides everything, but as the initial value. It is also possible now to set font-family and font-size like other CSS properties, and relative font sizes are supported. Font sizes in CSS can be specified as numbers or with keywords like xx-small, medium, smaller, larger.
- Implementations for touch devices
There is now support for touch friendly popups on entries and text views in place of context menus since development version 3.7.12. The touch event was added to GtkToolPalette since 3.7.10.
- New function: gdk_window_set_fullscreen_mode
This new function allows windows to be fullscreened across multiple monitors.
- Performance improvements
Version 3.7.4 brought many noticable performance improvements. Size allocation has been optimized, by avoiding excessive resizing in various situations, performance of size groups has been improved, text rendering in GtkLabel and other widgets has been optimized to avoid excessive recreation of Pango layouts, Icon loading overhead was reduced by caching of GtkIconInfo and CSS is now keeping a tree of selectors to speed up matchinh.
- Many more little additions and improvements plus over 140 bug and memory leak fixes
Ideas for 3.10?
Although it is still too early to speak about version 3.10, ideas include the following four new widgets for the next GTK version: list box, flow box, stack, header bar.