This month was quiet on the main
branches, but an exciting and long-requested feature is coming: color glyph rendering. This will allow Gio to display text using many color emoji fonts, as well as some bitmap fonts. I have a working prototype, but editing text with emoji revealed that our text editor desperately needs to support UAX#29 grapheme clusters in order for cursor positioning within emoji to make sense. I’m tackling that problem right now. I’d like to thank Plato Team for supporting this project.
You can view a screenshot of Gio rendering emoji from my work here.
Sponsorship
This month, Gio thanks the following organizations and community members for their ongoing support!
Supporting the whole team:
- Plato Team via GitHub Sponsorship of Elias and Chris.
- Tailscale via OpenCollective.
- Lucas Rodrigues via GitHub Sponsorship of Gioui and Elias.
- Denys Smirnov via OpenCollective.
- Larry Clapp via GitHub Sponsorship of Elias and Chris.
Supporting a maintainer:
- Matilda Tech via GitHub Sponsorship of Elias.
- Fino Meng via GitHub Sponsorship of Elias.
- Chris Waldon via GitHub Sponsorship of Elias.
- Tom Ingleby via GitHub Sponsorship of Elias.
- Tanguy Herrmann via GitHub Sponsorship of Elias.
- A number of anonymous community members.
Sponsorship money given to Gio enables Elias and I to cover the costs of running Gio’s infrastructure, to pay for some of our time spent maintaining and improving Gio, and to plan for funding significant feature work. You can support Gio by contributing on OpenCollective or GitHub Sponsors.
Changes by repo
Below you can find summaries and details of all changes across the official project repositories.
core gio
Dominik greatly improved list scrolling efficiency in core this month. Thanks Dominik!
Dominik Honnef:
widget/material
: use more efficient way of scrolling lists. 5f818bc5layout
: add API for efficiently scrolling to and by items. The majority of scrolling happens by manipulating the index of the first displayed item instead of by just manipulating the offset. This lets us avoid having to render all items that were scrolled past. 8af44726
Elias Naur:
go.*
: bump golang.org/x/text. bb12508a
gio-x
Dominik made the Resize component smarter, Sebastien improved the internals of the Linux implementation of explorer, and Lothar made the background color of component.SurfaceStyle overridable. Thanks to you all!
Sebastien Binet:
explorer
: refactor importFile{,s} for Linux. This CL refactorsimportFile{,s}
for Linux. it also prepares for the ability to modify the “label” of the file(s) opening dialog. (so this can be adapted for localization/internationalization.) a8f5094
Dominik Honnef:
resize
: maintain ratio when changing constraints. Before this change, changing the constraints (e.g. by resizing a window) would have the following behavior: 6822f59
Lothar May:
component
: add Fill color field to SurfaceStyle. 05b40af
Chris Waldon:
outlay(grid)
: update scrolling logic. This helps with scrolling jankiness, thanks to Ortwin Wittmann for the suggested fix. ea2f4a8
End
Thanks for reading!
Chris Waldon