GTK 4.8 graphics toolkit available

After eight months of development, the release of a multiplatform toolkit for creating a graphical user interface - GTK 4.8.0 - has been published. GTK 4 is being developed under a new development process that attempts to provide application developers with a stable and supported API for several years, which can be used without fear that applications will have to be reworked every six months due to API changes in the next GTK branch.

Among the most notable improvements in GTK 4.8 are:

  • Changed color picker interface style (GtkColorChooser).
  • Improved support for OpenType format features in the font chooser interface (GtkFontChooser).
  • The CSS engine has optimized regrouping of elements associated with the same parent, and allowed the use of non-integer values ​​when determining the size of the spacing between letters.
  • Emoji data updated to CLDR 40 (Unicode 14) set. Added support for new locales.
  • Icons have been updated in the theme and the legibility of highlighted text labels has been improved.
  • The GDK library, which provides a layer between GTK and the graphics subsystem, has optimized the conversion of pixel formats. On systems with NVIDIA drivers, the EGL extension EGL_KHR_swap_buffers_with_damage is enabled.
  • The GSK (GTK Scene Kit) library, which provides the ability to render graphic scenes through OpenGL and Vulkan, supports the processing of large visible areas (viewports). Libraries for drawing glyphs using textures are proposed.
  • For Wayland, support for the "xdg-activation" protocol is implemented, which allows you to transfer focus between different surfaces of the first level (for example, using xdg-activation, one application can switch focus to another).
  • The GtkTextView widget has reduced the number of situations that lead to repeated redraws, and implemented the GetCharacterExtents function to determine the area with a glyph that defines a character in the text (a function requested by tools for people with disabilities).
  • The GtkViewport class, which is used to organize scrolling in widgets, has the "scroll-to-focus" mode enabled by default, in which the content is automatically scrolled to maintain the view of the element that has the input focus.
  • The GtkSearchEntry widget, which shows the area for entering a search query, provides the ability to configure the delay between the last keystroke and the sending of a content change signal (GtkSearchEntry::search-changed).
  • The GtkCheckButton widget has the ability to assign its own child widget with a button.
  • The "content-fit" property has been added to the GtkPicture widget to adapt content to a given area size.
  • Scrolling performance has been optimized in the GtkColumnView widget.
  • The GtkTreeStore widget allows extracting tree data from ui files.
  • A new widget for displaying lists has been added to the GtkInscription class responsible for displaying text in a specific area. Added a demo application with an example of using GtkInscription.
  • Added support for scrolling in the GtkTreePopover widget.
  • Support for tabs has been added to the GtkLabel widget and the ability to activate labels by pressing the symbols attached to the label on the keyboard is provided.
  • The GtkListView widget supports the "::n-items" and "::item-type" properties.
  • The input system provides support for handlers for dimension parameters (GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE) of scrolling.
  • For the macOS platform, support for full screen mode and video playback using OpenGL has been added. Improved monitor detection, work in multi-monitor configurations, window placement and size selection for the file dialog. CALayer and IOSurface are used for rendering. Allowed applications to run in the background.
  • On the Windows platform, improved window placement on HiDPI screens, added a color detection interface, implemented support for high-resolution mouse wheel events, and improved touchpad support.
  • The screenshot command has been added to the gtk4-builder-tool utility to create a screenshot, which is used when generating screenshots for documentation.
  • The installation of the gtk4-node-editor utility is provided.
  • Expanded debugger capabilities. Implemented display of additional application data and allowed viewing of PangoAttrList properties when inspecting. Inspection by inspectors allowed. Added support for "GTK_DEBUG=invert-text-dir" mode. The "GDK_DEBUG=portals" mode has been proposed instead of the GTK_USE_PORTAL environment variable. Improved responsiveness of the inspection interface.
  • Sound support has been added to the ffmpeg backend.
  • The memory limit in the JPEG image uploader has been increased to 300 MB.

Source: opennet.ru

Add a comment