Recent Releases
4.17.108 Dec 2024 06:05
minor bugfix:
This release switches our portal support from opt-in to opt-out.
We will use portals by default, unless you set GDK_DE=no-portals.
And we will *always use portals in flatpaks.
Text rendering:
- Make error underlines smaller.
GtkText:
- Avoid selecting inserted Emoji.
GtkPlacesView:
- Improve accessibility.
GtkFileChooser:
- a case where search was stealing focus.
GtkEmojiChooser:
- Update to CLDR 46 / Unicode 16.
Accessibility:
- DBus signature of ChildrenChanged.
GDK:
- Don't recycle threads too aggressively.
- Add GDK_DISABLE=threads to disable threaded operations.
- Improve parallelization for small tasks.
GSK:
- Make occlusion checking more effective.
- Clip luminosity when clipping colors (avoiding masking artifacts).
- problems with dihedral transforms.
Vulkan:
- Streamline Vulkan setup.
- blurry rendering at certain scale/size combinations.
OpenGL:
- Conform to buffer offset alignment requirements.
Windows:
- pasting certain bitmaps.
Documentation:
- Revise and modernize some docs.
Deging:
- Inspector: Show surfaces and renderers in the tree.
- Inspector: Make the object tree resizable.
- Inspector: Add a "Copy for gitlab" button.
Translation updates
Icelandic
Serbian
Slovenian.
4.17.029 Nov 2024 04:05
major bugfix:
GtkScrolledWindow.
- criticals in size allocation code.
GtkFileChooser.
- a crash in the portal code.
GtkFontChoser.
- Make the dialog more shrinkable.
GtkPicture.
- Avoid unnecessary resizes.
GtkVideo.
- Make dmabufs work without GL.
GtkListBox:
- Add a tab-behavior property to influence keynav.
GtkEmojiChooser:
- problems with insertion and selection.
GtkStringList:
- Add gtk_string_list_find.
GtkApplication:
- Respect GDK_DE=no-portals.
- Set default window icon from app ID.
GtkTextView:
- Vertical and horizontal positioning of the textview is now quantized
to the nearest device pixel. This should improve the perceived smoothness
of scrolling with fractional scaling and font hinting.
- Incorrect re-use of cached styling was - some missing CSS invalidation.
- Handle charsets in clipboard datatypes.
Printing:
- Avoid warnings for avahi errors.
- a segfault in the print dialog setup code.
Accessibility:
- Always realize non-widget accessibles, to help webkit.
- list view selection implementation.
- Handle NULL values in more places.
Gstreamer:
- Make dmabufs works without GL.
Gdk:
- Add OKLAB and OKLCH color states.
- GL: Drop support for GLES 2 and GL 3.3.
- GL: Use the ngl dmabuf downloader instead of the GL downloader.
- Vulkan: Drop the GDK_VULKAN_DEVICE env var. Use MESA_VK_DEVICE_SELECT instead.
- Vulkan: Use the swapchain maintenance extension to release swap images.
- Forbid opening displays before gtk_init().
Gsk:
- Many improvements to the dmabuf downloaders.
- ngl: Avoid glBufferSubData for globals, speeding up llvmpipe.
- Renderer selection will no longer consider the GL renderer.
- Allow Vulkan software rendering as fallback.
- Support gradient interpolation in different color states.
Wayland:
- Improve settings portal handling.
- Improve fallback for cursor themes.
- Make cursor theme changes apply immediately.
- Use a viewporter for cursor image scaling.
- Improve cursor size handling.
- Use the system bell protocol if
4.16.225 Nov 2024 06:45
minor bugfix:
GtkLabel:
- centered text in RTL.
Gsk:
- Speed up some Vulkan operations.
- Improve startup speed by avoiding initialization
of GL and Vulkan in most cases.
- Reduce critials at startup to warnings.
- a crash on startup with some Vulkan drivers.
- a big texture leak in NGL.
Gdk:
- Speed up memory format conversions.
Wayland:
- Be more careful with mimetypes during DND or copy-paste.
Tools:
- builder-tool: Improve conversion of boxes.
Translation updates:
Brazilian Portuguese
Bulgarian
Catalan
Chinese (China)
Georgian
German
Hebrew
Indonesian
Persian
Polish
Portuguese
Slovenian
Spanish
Turkish
Ukrainian.
4.16.124 Nov 2024 05:45
minor bugfix:
GtkFileChooser:
- Plug a memory leak.
GtkCalendar:
- Avoid ending up with invalid dates.
Printing:
- initial printer selection in the print dialog.
Gsk:
- shadows for opaque textures.
- a crash in a corner case.
Css:
- Make relative paths work again in theme files.
Accessibility:
- detection of the Flatpak portal.
MacOS:
- keyboard input in popovers.
- Keep DND icons above regular windows.
- Ignore events from DND icons.
Translation updates
Basque
British English
Bulgarian
Czech
Danish
Georgian
Hungarian
Lithuanian
Portuguese
Spanish
Swedish.
4.16.023 Nov 2024 11:25
major bugfix:
Note: This release changes the default GSK renderer to be Vulkan,
on Wayland. Other platforms still use ngl. The intent of this change
is to use the best available platform APIs. You can still override
the renderer choice using the GSK_RENDERER environment variable.
We believe that most of the problems reported with the new renderers.
during the 4.13 and 4.15 development cycles have been addressed by now.
But the new renderers and dmabuf support are using graphics drivers.
in different ways than the old gl renderer, and trigger new driver.
Therefore, it is recommended to use the latest mesa release (24.2)
with the new renderers.
GtkScale:
- positioning of scale values.
GtkEmojiChooser:
- Make Control-clicks work for the recent section.
GtkPopover:
- Make sure focus lands on the right widget when cascading.
GtkSpinButton:
- Disable Emoji input for numeric spin buttons.
GtkSingleSelection:
- Implement unselect_all.
Accssibility:
- roles for radio buttons.
- Check if ATs are listening before exporting trees.
- Add a check for sandboxed accessibility bus.
- handling of the error message relation.
- Turn criticals into demessages.
- Set expanded states properly in menus.
CSS:
- a few on bigendian systems.
- Avoid a crash with relative colors.
GSK:
- Use the right GL context when exporting textures.
- Don't let colors influence depth decisions.
- Allow uploading of mipmap levels when tiling textures.
GDK:
- Update keysyms from libX11 1.8.10.
- Implement cpu-side mipmapping.
- Use a thread pool for color conversions and mipmapping.
Vulkan:
- drag surface offsets.
Wayland:
- a crash.
- Associate EGL windows with context later.
X11:
- initial EGL context creation.
- a problem with GL context creation.
Broadway:
- Implement compute_size and request_layout.
MacOS:
- Set transparent backgroiund for toplevel windows.
Windows:
- Improve deoutput.
- Detect Mesas d3d12 driver and request GDI compat.
Demos:
- Set window icons in demos.
- Add a 64k
4.15.611 Nov 2024 07:45
minor feature:
GtkCheckButton:
- Add a grouped style class for radio buttons.
GtkScale:
- alignment and positioning problems.
Css:
- crashes in the variable support.
Gsk:
- Make graphics offloading work better with kwin.
- Make colorstate transfer functions more robust.
- GC dead textures more agressively.
- Only use a single render pass per frame.
GL:
- Round damage rectangles properly.
- Use the shared context when creating textures.
- a file descriptor leak in dmabuf export.
Vulkan:
- Round damage rectangles properly.
Wayland:
- Work with the kwin implementation of xx-color-management-v4.
Windows:
- Make gtk_show_uri use SHOpenWithDialog().
- Enable incremental rendering with WGL.
Macos:
- Open context menus on Ctrl-left click.
Deging:
- Show color state information in the inspector.
- Collect input event traces in the recorder.
- Add shortcuts for toggling recording: Super-r
and for screenshots: Super-c.
- Split the GDK_DEenv var into GDK_DEand GDK_DISABLE.
- Add GDK_DISABLE=color-mgmt and GDK_DISABLE=offload.
Tools:
- Add a 'Paste as node' action in gtk4-node-editor.
Translations updates
Basque
Belarusian
Brazilian Portuguese
Chinese (China)
Georgian
Hebrew
Hindi
Russian
Slovenian
Turkish
Ukrainian.
4.15.528 Sep 2024 05:05
minor bugfix:
GtkTextView:
- ADd GtkTextBufferCommitNotify.
CSS:
- Propagate color state information to GSK for many features:
colors, borders, shadows, text.
Gdk:
- an fd leak in the Vulkan code.
- a leak of EGLSurfaces and DMA buffers.
- Set the opaque region of surfaces automatically based on their content.
Gsk:
- Emoji rendering in Vulkan.
- Rework color handling to take color states into account.
- Implement more powerful occlusion culling.
- Minimize our use of renderpasses.
Macos:
- window transparency.
Deging:
- The inspector shows details about color states.
Deprecations:
- gdk_draw_context_begin/end_frame.
- gdk_surface_set_opaque_region.
Build:
- Require gstreamer 1.24.
Translation updates
Romanian.
4.15.429 Aug 2024 05:25
minor feature:
GtkPopover:
- size allocation with wrapping labels.
GtkColumnView:
- Check column visibility when measuring.
CSS:
- fallout from recent changes.
- Make implementation of currentcolor inheritance match browsers.
Gdk:
- Introduce GdkColorState for encoding color space information
Currently, we support srgb, srgb-linear, rec2100-pq and rec2100-linear.
- Add color states to GdkTexture, as well as to the texture builder
and downloader objects, and convert as necessary.
- Add GdkMemoryTextureBuilder.
- Attach color states when loading or saving textures.
- Add GdkCicpParams to create color state objects for cicp tuples.
- Drop GDK_DE=vulkan-validate
Use VK_INSTEANCE_LAYERS=VK_LAYER_KHRONOS_validation instead.
Gsk:
- Improve caching of glyphs and textures.
- Remove the uber shader.
- Numerous - corner cases in offload handling.
- Implement occlusion culling for opaque content.
- Allow offloading (some) transformed textures.
- Take colorstate into account when compositing.
- Add GDK_DE=linear to opt into linear compositing.
- Implement tiling for large textures.
- Stop using descriptors and go back to simpler texture
management that should work better with older GL.
- Use correct shader clip mode for glyphs.
- Improve shadow rendering.
Media:
- Attach color states to textures obtained from gstreamer.
Wayland:
- Allow offloading GL textures via dmabuf export.
- Suppot the xx-color-management-v4 protocol.
Deprecations:
- GskGLShader and the render node.
Tools:
- Improve the rendernode tool extract command.
- Add an image tool that is about manipulating textures.
Build:
- GTK now requires a C11 compiler.
Translation updates
Georgian
Hebrew
Hindi
Occitan
Slovenian.
4.15.304 Jul 2024 15:25
minor feature:
Accessibility:
- Only emit notifications when cursor positions change in GtkText.
- handling of help text properties.
CSS:
- some crashes introduced in recent currentcolor changes.
DND:
- Avoid a critical.
Documentation:
- many oversights and missing docs.
maxOS:
- Add native keyboard shortcuts.
4.15.230 Jun 2024 06:05
minor feature:
GtkFileChooserWidget:
- Plug some memory leaks.
- Make Ctrl-Shift-N create a new folder.
GtkPopover:
- Handle resizing and position changes better.
CSS:
- Support color(), oklab(), etc (https://www.w3.org/TR/css-color-4/).
- Support color-mix() (https://www.w3.org/TR/css-color-5/).
- Support relative colors (https://www.w3.org/TR/css-color-5/).
- Support more colorspaces in color().
- Allow percentages for opacity.
- Handle currentcolor more correctly.
Accessibility:
- Avoid markup when reading labels.
GSK:
- Subset fonts when serializing node trees.
- Make ngl export render_texture results as dmabufs.
Wayland:
- Use xdg-dialog protocol for attached dialogs.
Windows:
- Build with UNICODE.
macOS:
- Implement fullscreen-on-monitor.
Documentation:
- Widget shortcuts and actions are now described in the docs.
Deging:
- Add GTK_DE=css for warning about deprecated css syntax.
Tools:
- rendernode-tool: Add an extract command for data urls.
Deprecations:
- CSS Color functions shade(), lighter(), darker(), alpha(), mix().
Translation updates:
Czech
Hebrew
Serbian.
4.15.122 May 2024 20:05
minor bugfix:
GtkGraphicsOffload:
- Don't crash without a child.
GtkSpinner:
- Don't animate when unmapped.
CSS:
- Support the :root selector.
- Support variables and custom properties (https://www.w3.org/TR/css-variables-1/).
- Implement math functions (https://www.w3.org/TR/css-values-4/).
- Support modern syntax and calc in rgb() and hsl().
Icontheme:
- Make symbolic svg loading more efficient.
- Handle color-free symbolics more efficiently.
Accessibility:
- Make the gtk-demo sidebar search more accessible.
- Stop emitting focus events.
- Realize child contexts when necessary.
GDK:
- Support XDG_ACTIVATION_TOKEN.
- dmabuf: Be more defensive when importing unknown formats to GL.
- dmabuf: Use narrow range for YUV.
- vulkan: Recreate swapchains when necessary or beneficial.
GSK:
- Improve logging for GDK_DE=offload.
- Improve logging for GSK_DE=renderer.
- gpu: Warn about inefficient texture import.
- gpu: Handle tiny offscreens correctly.
- vulkan: Add profiler marks in various places.
- vulkan: a problem with imported dmabufs showing up black.
- cairo: Speed up mask nodes, since we use them for symbolic icons.
Wayland:
- Use wl_compositor version 6.
X11:
- Implement a missing method.
Build:
- many ubsan warnings.
Deging:
- Show more texture details in the recorder.
- Use GTK_DE=css to see CSS deprecations.
macOS:
- problems with events handed back to the OS.
- Respect GDK_DE=default-settings.
- Allow applictions to handle Dock Quit.
Deprecations:
- Use of @name colors in CSS.
Translation updates:
Catalan
Georgian
Hungarian
Korean
Portuguese
Turkish.
4.15.022 Apr 2024 10:05
major feature:
This release changes the default GSK renderer to be Vulkan, on
Wayland. Other platforms still use ngl.
The intent of this change is to get wider testing and verify that.
Vulkan drivers are good enough for us to rely on. If significant
problems show up, we will revert this change for 4.16.
You can still override the renderer choice using the GSK_RENDERER.
environment variable.
---.
This release also changes font rendering settings by introducing.
a new high-level gtk-font-rendering settings which gives GTK more
freedom to decide on font rendering.
You can still use the low-level font-related settings by changing.
the new property to 'manual'.
---.
GtkColumnView:
- infinite loops in dispose.
- problems with weak ref cycles in GtkExpression.
GtkListView:
GtkShortcutManager:
- Track the propagation phase of added controllers.
GtkGLArea:
- Produce dmabuf textures, so graphics offload is possible.
GtkTextView:
- Support text shadows.
GtkGraphicsOffload:
- Add a black-background property.
Settings:
- Add a new gtk-font-rendering setting.
Accessibility:
- Add support for GetRangeExtents to GtkAccessibleText.
- Add support for GetOffsetAtPoint to GtkAccessibleText.
- Implement GtkAccessibleRange for scrollbars.
GDK:
- Add a callback-based cursor API.
GSK:
Use the Vulkan renderer by default.
- Avoid an infinite recursion with offscreens in some cases.
- Optimize graphics offload to make it more likely that compositors
can use direct scanout.
X11:
- some confusing demessages.
- Drop a no-longer-relevant optimization that was interfering with
getting the current window manager capabilities.
macOS:
- Implement the color picker for macOS 10.15+.
Deging:
- Snow monitor resolution in the inspector.
Demos:
- Use graphics offload in the shadertoy demo.
- Show more reliable fps numbers in the fishbowl demo.
Tools:
- Support generating pdf in gtk4-rendernode-tool.
Build:
- Require pango 1.52.
- Require cairo 1.18.
- Add a missing dependency th
4.14.205 Apr 2024 01:25
minor bugfix:
GtkScale:
- Improve positioning of values in some cases.
Theme:
- Make progress in entries visible.
Accessibility:
- text insertion handling.
GDK:
- dnd: Use the default cursor durion motion.
- dnd: Use a better cursor for indicating the move action.
GSK:
- gl: Handle offloads in offscreen context better.
- text rendering problems with some fonts.
Wayland:
- Tighten up some protocol version checks.
- Use the presentation time protocol.
- a crash with subsurfaces.
- Improve settings portal handling.
macOS:
- up the app menu support.
Windows:
- problems with minimization.
- build without fontconfig.
Deging:
- Add font settings in the inspector.
Demos:
- Clean up the application demo.
- Update cursor images for the cursor demo.
Translation updates:
Catalan
Czech
French
Georgian
Hebrew
Persian
Slovenian
Turkish
Ukrainian.
4.14.117 Mar 2024 12:05
minor bugfix:
GtkTextView:
- a mixup of cursor and anchor when retrieving surrounding text
in input methods.
Printing:
- Avoid accessing freed printers.
Accessibility:
- memory leaks.
GDK:
- Rename the GDK_VULKAN_SKIP environment variable to GDK_VULKAN_DISABLE.
- Add a GDK_GL_DISABLE environment variable.
GSK:
- Rename the GSK_GPU_SKIP environment variable to GSK_GPU_DISABLE.
- Speed up handling of repeated ops, which should help for text.
- Speed up the inner loop of text node conversion.
- Drop the glyph-align optimization flag.
- ngl: Avoid reusing frames while they are in use.
- flickering thumbnails in nautilus.
- Speed up buffer handling in both ngl and Vulkan.
Demos:
- Skip demos using gl shaders when we're not using the gl renderer.
Build:
- some ubsan warnings.
- Avoid zink in ci since it spams stderr.
Translation updates:
Czech
German
Korean
Russian.
4.14.013 Mar 2024 17:45
major bugfix:
Note: The new renderers and dmabuf support are using graphics drivers
in different ways than the old gl renderer, and trigger new driver,
(see for example https://gitlab.gnome.org/GNOME/gtk/-//6418 and.
https://gitlab.gnome.org/GNOME/gtk/-//6388). Therefore, it is
recommended to use the latest mesa release (24.x) with the new renderers.
GtkTextView:
- Don't snapshot children twice.
- Don't blink the cursor when hidden.
GtkEmojiChooser:
- presentation selector handling.
GtkSnapshot:
- wrong nodes with transformed shadows.
GtkIMContext:
- Make gtk_im_context_activate_osk public.
Accessibility:
- Implement get_contents_at for all our text widgets.
- Add GtkAccessibleText.get_default_attributes.
GSK:
- Don't fall back to cairo for software rendering. gl+llvmpipe is better.
- Round vertical glyph position to a device pixel position if the font is hinted.
- problems with clip handling.
- Make vulkan and ngl match their font handling.
- some corner-cases with offloading and clips.
- problem with rendering of missing glyphs in hinted fonts.
MacOs:
- Implement cursor-from-texture.
Translation updates:
Basque
British English
French
Indonesian
Kazakh
Latvian
Lithuanian
Norwegian Bokmål
Slovenian
Spanish
Turkish.
4.13.903 Mar 2024 03:15
minor bugfix:
GtkEditable:
- preconditions to be not too strict.
GtkEmojiChooser:
- Support search in the locale as well as in English.
GtkIconTheme:
- Make gtk_icon_paintable_new_for_file support symbolics.
GtkVideo:
- a problem with cursor handling that could lead to crashes.
Accessibility:
- GetCharacterAtOffset implementation.
- Add a Terminal role.
- Make TextCaretMoved match gtk3.
- Support multiple levels of GtkEditable delegates.
GSK:
- Make the node parser more flexible for text nodes.
- Change the way font scaling is handled to avoid clipping.
- handling of missing glyphs in the new renderers.
X11:
- Don't claim to support shadows without a compositor.
Wayland:
- handling of output scales.
Tools:
- Add a compare command to gtk4-rendernode-tool.
Build:
- some ubsan complaints.
Translation updates:
Basque
British English
Catalan
Finnish
Galician
Georgian
Hebrew
Indonesian
Kazakh
Latvian
Lithuanian
Persian
Polish
Russian
Slovenian
Spanish
Turkish
Ukrainian.
4.13.821 Feb 2024 13:56
minor bugfix:
Accessibility:
- Add a GtkAccessibleText interface for allowing 3rd party
text widgets (notably vte) to be accessible
- Avoid duplicate accessible descriptions
- Fix GetAccessibleAtPoint
* GSK:
- Avoid offscreens for disjoint containers
- Don't use the gpu renderers with llvmpipe
- Fix various rendering issues found by tests
- Allow unnormalized node bounds again
- Fix a broken case of rounded-rect intersection
- Fix handling of external textures in gpu renderers
- Make gpu renderers work with WGL on Windows
* build:
- Allow building without dmabuf support on (old) Linux
* X11:
- Fix monitor enter/leave signals
* Translation updates:
Basque
Brazilian Portuguese
Catalan
Czech
Galician
Georgian
Hebrew
Lithuanian
Persian
Russian
Turkish
Ukrainian