-
-
Notifications
You must be signed in to change notification settings - Fork 81
New post! #322
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
New post! #322
Conversation
08183c1 to
b980703
Compare
| date: 2025-07-15 16:00:00 +0000 | ||
| --- | ||
|
|
||
| For the interested ones, here is the list of the merged pull requests: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should have some paragraph at the top that lists
- Release for GNOME 49 with support for all the new APIs
- Also new adwaita, gstreamer (https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/blob/main/gstreamer/CHANGELOG.md#0240---2025-07-15) and gst-plugins-rs (https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/main/CHANGELOG.md?ref_type=heads#0140---2025-07-16) releases
- Breaking API changes, but only very few. Next breaking release planned for summer of next year.
- "Please test the new version and report any bugs you find here"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gtk4-rs 0.10 and gtk-rs-core 0.21 were just released in time for the GNOME 49 release. This release features support for all the new APIs that were added during the GNOME 49 development cycle, and in addition contains some bindings API cleanups. There were very few breaking API changes.
As usual, this release happened in sync with other bindings for GObject-based libraries: libadwaita 0.8, gstreamer 0.24, gst-plugins-rs 0.14 and various others maintained in the GNOME Rust group.
The next API breaking release is planned for summer 2026 for GNOME 51, and in the meantime non-breaking bugfix releases will be released together with any new APIs that are added in the GNOME 50 development cycle.
Please test the new version and report any bugs you find!
| * [gdk4-macos: manually implement native\_window method](https://github.com/gtk-rs/gtk4-rs/pull/1938) | ||
| * [gdk: Generate MemoryTextureBuilder](https://github.com/gtk-rs/gtk4-rs/pull/1916) | ||
| * [Update to femtovg 0.11 and glow 0.15](https://github.com/gtk-rs/gtk4-rs/pull/1915) | ||
| * [add gdk4-macos bindings](https://github.com/gtk-rs/gtk4-rs/pull/1909) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Worth highlighting this one
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New gdk4-macos crate
In addition to the already existing gdk4-wayland, gdk4-win32 and gdk4-x11 there is also a separate crate now for the GDK macOS APIs. This gives access to macOS native types that are used internally by GDK/GTK and allows interoperability with other macOS APIs.
|
Don't think I have anything to add other than that. All those changes are bugfixes and minor additions otherwise, nothing to highlight IMHO :) |
| * [book: Add link to Chinese translation](https://github.com/gtk-rs/gtk4-rs/pull/1894) | ||
| * [accessible\_value: Fix errormessage relation layout](https://github.com/gtk-rs/gtk4-rs/pull/1887) | ||
| * [template\_child: Implement PropertyGet for TemplateChild](https://github.com/gtk-rs/gtk4-rs/pull/1886) | ||
| * [Add interface bounds to Impls](https://github.com/gtk-rs/gtk4-rs/pull/1883) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one (and the corresponding one in gtk-rs-core that landed earlier) is a notable breaking change. We could go with something like:
Interface bounds on the glib::wrapper macro
It is now a hard requirement to specify all @implements directives for all interfaces that are implemented by the class, even for interfaces that are implemented by parents of the class. This ensures internal consistency between the public rust interface and the gobject world, resolving a soundness issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the main thing that caught me.
The error messages, for example:
the trait `glib::object::IsA<Root>` is not implemented for `ex_application_window::ExApplicationWindow`
the trait `gtk4::prelude::IsA<Root>` is not implemented for `ex_application_window::ExApplicationWindow`
if this is your own object, use the `glib::wrapper!` macro to implement this trait: https://gtk-rs.org/gtk-rs-core/stable/latest/docs/glib/macro.wrapper.html
pointed me in the right direction, but it wasn't obvious to me that exactly what I needed to do.
Ultimately using this commit to use as an example is what made it easy for me:
(from the PR exact linked above)
No description provided.