Workbench 46.1
International Workers' Day marks the release of Workbench 46.1
This new release comes with
Save/restore window state and dimensions for each session/project. I couldn't use the method defined in Saving and restoring state into GSettings because resizing manually with the mouse triggers a lot of blocking disk writes and cause the user action to appear sluggish. So I debounce the events and write to gsettings manually.
Find text in the current editor. The keyboard shortcut is Ctrl+F. This is a feature started by Sriyansh Shivam during their GSoC 2023 internship and finished by UrtsiSantsi. Thanks!
SVG Library entry. Gtk (via gdk-pixbuf) draws SVGs at their intrisic sizes (what is defined in the svg document). If you use different dimensions for example using GtkImage.pixel-size
then it is the pixmap that gets upscaled resulting in pixelated / blurry images. This new Library entry showcases how to render an SVG at arbitrary dimensions using librsvg. We may need a better primitive in the future, if you need an SVG Paintable; GTK Demo contains an example. See also this conversation.
Reveal In Files. This is a new option available in the menu that will reveal the session/project in Files. You can use it to add assets to your project and load them using workbench.resolve
or as icons.
Import icons into your projects. Using the “Reveal In Files” option you can now add custom icons to your projects. It's just a matter of dropping the files in the right folder. See the “Using Icons” Library entry.
Workbench included an Icon Library and icon-development-kit for a while but in an effort to simplify Workbench and since we already have an Icon Library app, I decided to remove both in favor of per project icons.
I'm quite happy with the developer experience there and I hope we can provide something similar in the future to move beyond GtkIconTheme
. We probably need to keep icon-name
as suggested in Updates from inside GTK but I'd be very interested supporting relative paths in GTK Builder. Thankefully we already have GResource to allow for something like
Gtk.Image {
src: "./smile-symbolic.svg";
}
7 new Library entries ported to Vala
- Radio Buttons
- Switch
- Revealer
- Styling with CSS
- Separator
- Level Bars
- Link Button
Also
- “Animation” Library entry ported to Python
- Split “List View Widget” Library entry into “List View” and “Grid View”
- Fix Vala and Rust extensions detection on “Run”
- List editor shortcuts in Shortcuts
Thank you contributors and GSoC applicants.