This Week in GTK+ – 1

What’s up with GTK+ for the week of 9 May 2016 – 15 May 2016

In this last week, GTK+ has seen 51 commits, with 5375 lines added and 4970 lines removed.

Planning and Status

The 3.22 development cycle is picking up pace while we go through the items of the Roadmap.

Notable changes
  • Olivier Fourdan fixed scroll event handling in GtkMenu, to ensure that it behaves consistently on X11 and Wayland with regards to smooth and discrete scrolling
  • The list of available protocols in the Connect to Server help popover is now populated using the list of supported schemes in GVFS, thanks to Georges Basile Stavracas Neto
  • Benjamin Otte has pushed a commit that lets GtkWidget emit the style-updated signal on unrealized widgets instead of delaying until realization; the original behavior was the result of an older optimization to avoid too many invalidations during construction, but the style system has improved over the years.
  • Timm Bäder pushed various clean up commits over various widgets, like GtkListBox, GtkStack, and GtkToolbar.
Bugs fixed
  • Bug 766166 key bindings in gtk.css are ignored
  • Bug 766207 Fix build on pre-C99 compilers
  • Bug 765939 [Wayland] very slow scrolling in GtkMenu using the touchpad
  • Bug 756570 gtkplacesview no longer provides guidance on address formats
  • Bug 766120 Scale draw_value() align changed from centre/right (H/V) to left, causing significant visual regression
  • Bug 766233 Crash when server does not support XI2
  • Bug 766175 Translation of quotes may misinterpreted by GTK sidebar
  • Bug 765700 GtkPaned use causes “How does the code know the size to allocate?”
  • Bug 682080 Gtk:ERROR:gtktoolbar.c:2271:logical_to_physical: assertion failed: (logical == 0)
  • Bug 766458 widget: fix GtkLabelAccessible NULL links.
Get Involved

Interested in working on GTK+? Look at the list of bugs for newcomers and join the IRC channel #gtk+ on irc.gnome.org.

This Week in GTK – 0

In order to improve the communication between the GTK team and the rest of the GNOME platform, as well as application developers, we’re going to start writing weekly status reports on what happens in GTK and the rest of the core GNOME platform.

These reports are heavily inspired by the ones that the Servo team writes.

You can expect a weekly post on this blog every Monday; we’ll look at notable changes; new contributors; new features or deprecations; and scheduled events.

If you have questions, as usual, direct them to the GTK development mailing list.

Have fun!

Hello, World! (Reprise)

Hi all, and welcome back to the GTK+ development blog.

We’ve neglected this blog for a while, after the 3.0 release, but we think it’s kind of important to have a place where to talk about GTK+ (and the rest of the core GNOME platform), how it’s changing, and where it’s going.

Going forward, we are not going to use this blog for announcements — though if you want the, you can simply subscribe to the gnome-announcement mailing list. Instead, we are going to use this space to present what is happening in GTK+; to discuss the road map; to spotlight some new feature, and maybe some old one that is not well known.

Stay tuned, and as usual: have fun!

Newly designed gtk.org now up and running!

Originally, the website for http://www.gtk.org was going to be updated in line with the release for GTK+ 3.0 but there were a few set backs and more review needed. Finally, it’s up and running thanks to a lot of help from Devin Samarin and comments from the GTK+ community.

We have more plans to improve things on the website such as business support around GTK+ which is not really obvious enough on the current website. As part of the updates to the new website, we now list more recently established maintainers of the toolkit (seen on the Development page).

GTK+ 2.20 Released

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

Noteworthy changes:

  • GtkSpinner, GtkCellRendererSpinner – A new widget that renders a ‘spinner’ animation to indicate ongoing activity. The corresponding cell renderer renders the same animation inside a treeview
  • GtkOffscreenWindow – A new toplevel container widget to manage offscreen rendering of child widgets
  • GtkNotebook – You can now show ‘action widgets’ in the space that is not occupied by tabs. This functionality is also available in GtkBuilder via the ‘action-start’ and ‘action-end’ child types.
  • Filechooser – GtkFileSystemModel has been reimplemented, for major speedup and simplifications.
  • Keyboard handling – The compose sequences understood by the builtin input method have been synced with X.org, and the additional sequences have been rationalized
  • Mnemonic underlines – Can now optionally be hidden until the Alt key is pressed, this can be turned on with the gtk-auto-mnemonics setting
  • Keyboard accelerators – The Super, Meta and Hyper modifiers are working more reliably
  • GDK – There is a new function to get the ‘primary’ monitor in multi-monitor setups: gdk_screen_get_primary_monitory.
  • gdk-pixbuf – Embedded color profiles in png and tiff images can be stored and retrieved. Support for the QTIF image format has been added
  • Win32 – XP themes have been disabled since they don’t work
  • OS X – GTK+ uses standard Mac keyboard shortcuts (Cmd-X/Cmd-C instead of Ctrl-X/Ctrl-C, etc). The handling of multi-monitor setups has been greatly improved
  • Introspection support – Introspection data is now included in GTK+ itself. As a consequence, a dependency on gobject-introspection has been added

GLib 2.24.0 released

GLib 2.22 is a stable release adding an incremental improvement in functionality over GLib 2.20 while maintaining binary and source compatibility. Major changes include:

  • The requirements for g_thread_init() have been relaxed slightly, it can be called multiple times, and does not have to be the first call. GObject now links to GThread and threads are enabled automatically when g_type_init() is called. Thread-safety issuesvwith boxed types in GObject have been fixed. The -pthread flag has been added to all gmodule .pc files, because it is not generally permissible to load modules that are linked against libpthread if the program has not been compiled with threading support.
  • GType now has a G_DEFINE_INTERFACE convenience macro
  • GIO supports lazy loading of GIO modules, and there is a new gio-querymodule utility that goes along with this. Packagers will need to adapt to this.
  • GIO uses splice(2) to transfer data between file descriptors without extraneous copies.
  • The GVariant variant datatype has been added.

GLib 2.21.3 unstable release

This is a development release leading up to GLib 2.22.

Overview of Changes from GLib 2.21.2

  • GMappedFile is refcounted now
  • Mainloop: It is now possible to set per-thread default contexts, with g_main_context_push_thread_default.
  • glib-mkenums supports a @basename@ substitution, in addition to @filename
    • GIO:

    • Vfs implementations can support storing of per-file metadata.
    • GCancellable can now be subclassed.
    • Unmount and eject methods now optionally allow interaction, via variants that take a GMountOperation object.

11 bugs fixed in this release!

See the original announcement for more info and downloads.