CSS border-spacing support added in GtkGrid, GtkBox, gadgets

Dec 28, 2016 19:54 GMT  ·  By

A new development build of the upcoming GTK+ 4 GUI (Graphical User Interface) toolkit used to create those beautiful GTK apps everyone adores arrived last week with a lot of new features and bug fixes.

GTK+ 3.89.2 comes just one month after the first development snapshot, versioned 3.89.1, and it looks like it comes with a new Vulkan implementation that was added in parallel to the OpenGL one, CSS border-spacing support for the GtkBox and GtkGrid widgets, as well as the gadgets, and a working gtk4-icon-browser.

Other than that, the gtk-demo component was updated to offer an example for using the PangoTabArray function with the GtkTextView widget, the GtkListBox and GtkFlowBox widgets were changed to no longer emit the "::selected-children-changed" signal during destruction, and gtk-encode symbolic now supports icons that contain dots in their names.

The list of changes continues with the refactoring of the rendering in GSK (GTK Scene Kit) and GDK (GIMP Drawing Kit), which support drawing of toplevel windows and redrawing of the whole window. Additionally, it looks like the GSK_USE_SOFTWARE variable was generalized as GSK_RENDERER.

"The GSK_USE_SOFTWARE environment variable has been generalized as GSK_RENDERER. Use GSK_RENDERER=help to learn about possible values. Other environment variables that have gained new possible values in clude GSK_DEBUG=vulkan and GTK_DEBUG=snapshot," the release notes read.

Deprecated and new APIs

As expected with any new development build of GTK+ 4, more APIs (Application Programming Interfaces) have been deprecated and new ones added. Among the dropped APIs, we can notice GtkJunctionSides, gdk_window_reparent, gtk_snapshot_append, and gsk_render_node_make_immutable.

Furthermore, the gdk_window_process_updates, gsk_render_node_{append/prepend/insert} variations, gdk_window_process_all_updates, and gtk_cairo_should_draw_window APIs have been removed too, along with the support for foreign and native subwindows.

The newly added APIs in GTK+ 3.89.2 are GskRoundedRect, gdk_rgba_is_clear, gtk_container_snapshot_child, gdk_rgba_is_opaque, and GdkDrawContext, which acts as a base class for Vulkan and GL contexts. GTK+ 3.89.2 also features render node subclasses, and Czech, German, Hungarian, Italian, Kazakh, Russian, and Spanish translations were updated.

Dozens of issues reported by users since GTK+ 3.89.1 have been addressed in this second development build, which you can download right now from our website if you plan on taking it for a test drive. The full changelog is attached below if you're curious to know what exactly was added, removed, or improved in GTK+ 3.89.2.

GTK+ 3.89.2 Changelog