GTK 3.99 is here and one step away from GTK 4, know its most important changes

The final version of GTK 3.99 has already been released and in it I willegan various implementations that are aimed at upgrades to be offered within GTK 4.

The branch GTK 4 is being developed as part of a new process development that try to provide application developers with stable and compliant API for several years, it can be used without fear that every six months you will have to redo applications due to API changes in the next version of GTK.

What's new in GTK 3.99?

In this new released version of GTK 3.99 it is removed the old implementation of the accessibility API for people with disabilities and, instead a new version based on the ARIA specification was proposed and the GtkAccessible widget.

For Windows, a new ANGLE-based GDK rendering backend has been proposed, an intermediate layer for translating OpenGL ES calls to OpenGL, Direct3D 9/11, Desktop GL, and Vulkan. While for macOS a new GDK backend was added.

Another of the changes implemented is the support for editable labels (GtkEditableLabel), plus new list models have been proposed to display bookmarks (GtkBookmarkList), Strings (GtkStringList), and Select Boxes (GtkBitset) and the GtkTreeView widget implements the ability to edit cells.

From the other changes in this version:

  • GtkGridView and GtkListView have improved scrolling implementation, added support for autoscrolling and autoshiding.
  • GtkWidget has significantly sped up the processing of various actions.
  • Added support for incremental scrolling and filtering to GtkFilterListModel and GtkSortListModel.
  • The Inspector adds support for inspecting list models and the ability to navigate directly between objects.
  • In the GDK, the displacement history is saved, the GdkDevice API has been cleaned, the division of devices into master and slave has been stopped.

What is expected for GTK4?

As for the changes that are expected for GTK4 (which is expected to be released between October and November of this year) it is for example a constraint design method, in which the position and size of the children are determined based on the distance to the edges and the size of other elements.

A rendering module based on the Vulkan graphics API, which implements shaders for many resource-intensive CSS elements used in GTK widgets.

GSK integration (GTK Scene Kit) with graphic scene rendering capabilities through OpenGL and Vulkan.

As well as the representation organization has been revised: Instead of generating a buffer, a rendering node-based model is now used, in which the output is organized in the form of a tree of high-level operations, efficiently processed by the GPU using OpenGL and Vulkan.

A modernized event delivery model which eliminates the need for a subwindow when routing input events. The need to implement a new model is associated with a more active use of animation effects, which must be rendered without changing the layout of the visible elements and, consequently, without a subwindow.

GDK API redesigned to take advantage of the Wayland protocol and related concepts. X11 and Wayland related functions moved to separate backends.

For the development of widgets, a new GtkLayoutManager object is presented with the implementation of the control system for the design of elements depending on the size of the visible area. GtkLayoutManager has replaced child properties in GTK containers like GtkBox and GtkGrid.

Simplified handling of events that are now only used for input. The rest of the events have been replaced with separate signals.

The Broadway backend has been rewritten to allow rendering of the GTK library output in a web browser window.

The API related to drag and drop operations has been changed, including the separately proposed GdkDrag and GdkDrop objects.

Finally if you are interested in knowing more about it about what to expect for GTk4 you can check the details In the following link.


Be the first to comment

Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.