In this last week, the master branch of GTK+ has seen 52 commits, with 10254 lines added and 9466 lines removed.

Planning and status

Alex Larsson is working on two separate branches to optimize the memory allocation and fragmentation when building the GSK render tree, after profiling the tree building code

Timm Bäder is working on a topic branch to switch widgets to be visible by default

The GTK+ road map is available on the wiki.

Notable changes

On the master branch:

Rui Matos added support in the Wayland backend for the gtk-enable-primary-paste settings key; this requires a newer version of the gsettings-desktop-schemas

settings key; this requires a newer version of the gsettings-desktop-schemas Matthias Clasen and Alex Larsson refactored some of the GSK, GtkWidget , and CSS internals to avoid excessive type casting and type checking after profiling the rendering code

, and CSS internals to avoid excessive type casting and type checking after profiling the rendering code Matthias added a “system” tab to the GtkAboutDialog widget, for free-form, system-related information

widget, for free-form, system-related information Matthias also updated the porting documentation for -gtk-icon-filter

Benjamin Otte changed the X11 backend to always call XInitThreads() unconditionally, in order to safely use the Vulkan rendering API; this should be safe, but testing is encouraged

unconditionally, in order to safely use the Vulkan rendering API; this should be safe, but testing is encouraged Benjamin updated the GtkSnapshot API to ensure that render nodes are available only after the snapshot is complete

API to ensure that render nodes are available only after the snapshot is complete Benjamin also fixed the handling of CSS images that have no explicit size but should be scaled according to their aspect ratio

Timm Bäder added a revealed property to the GtkInfoBar widget and ported the GtkActionBar code to use it

On the gtk-3-22 stable branch:

Ruslan Izhbulatov worked on fixing various cases of keyboard handling under Windows, including interaction with AeroSnap; Ruslan also fixed bug 165385, which was going to be 12 years old in 10 days

Carlos Garnacho changed the EGL handling inside the Wayland backend to disable swap interval, as the compositor is in charge of timing the rendering

Matthias Clasen deprecated additional API that has been removed from the development branch

Bugs fixed

776031 – W32: Winkey+down minimizes maximized window instead of restoring it

– 165385 – Win32 keyboard handling still incomplete

– 769835 – On Wayland, application containing GtkGLArea stops responding if it’s not on current workspace

– 774726 – GtkTreeView dnd: gtk_drag_finish remove row when reorder sinse 3.20

– 769214 – keyval field not filled correctly for Pause key

– 776485 – GDK W32: Impossible to restore maximized window via system menu

– 776604 – about dialog: Add a “system” tab

– 775846 – gdk/wayland: Add support for the gtk-enable-primary-paste gsetting

Getting involved

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