16th of May 2022 to 22nd of May 2022

Slint UI Library

Sneak-peek at the Slint Embedded World booth

We will be at Embedded World in Nuremberg from from 21st to 23rd of June. This is our first trade show, and is a huge event for us! This week we were preparing our booth and materials and polishing the demos we want to show there.

But we were also starting on making some plans for after Embedded World:-)

Slint's accessibility support also saw some small improvements and is getting into close to a state where we can merge initial support into the master branch!

New Features

  • Add support for @radial-gradient(circle, ...) (#1281)

    Only the circle is implemented so far.

    Part of #263

Fixes

  • Fix mouse exit events not triggered by scrolling a Flickable (#1263)

    Fixes #1107 Fixes #1278

    Thank you to Levin Rickert for this pull request!

  • wasm: Prevent wasted redraws with multiple post_events (#1273)

    The previous approach of calling send_event on a timer has the disadvantage or re-entering the event loop for every queued event. Any requested redraw after one of those events will end up actually drawing, even if that frame could be replaced by the next event's redraw without being shown to the user.

    winit also doesn't expose publicly its web Runner send_events method that would allow us to queue the events outside and pass them all together.

    We can however queue the events inside winit by putting the event loop in ControlFlow::Poll mode so that winit batches them itself. This has the side effect of processing and painting those events using requestAnimationFrame.

    To achieve this we take advantage of winit processing send_event calls synchronously, possibly while on a native event handler, by entering the event loop just to send WakeEventLoopWorkaround, set the event loop in Poll mode, exit, and call send_events again with our event which then ends up being queue in the web event loop's Runner until the next animation frame where all queued events are processed and redrawn together.

    Thank you to Jocelyn Turcotte for this pull request!

  • Allow for the use of cache-rendering-hint in separate components (#1284)

    The lower_property_to_element pass usually disallows that because it injects the Layer element and we can't do that for components. But we can handle this like with opacity and inline.

Tooling

  • LSP: Fix auto-completion of @-macros (#1285)

Other Crates and Libraries

Contributions to other crates and libraries made by the Slint developers:

FemtoVG

  • Optimize the OpenGL renderer for older GPUs (#92)

    Split up the large fragment shader into multiple smaller programs with less branches to speed up rendering on older GPUs.

Statistics

28 patches were committed in 10 pull requests by 6 authors.

← Next : 23rd of May 2022 to 29th of May 2022 | Previous : 9th of May 2022 to 15th of May 2022 - 0.2.4 Release


Slint is a declarative GUI toolkit to build native user interfaces for desktop and embedded applications written in Rust, C++, JavaScript, and Python. Find more information at https://slint.dev/ or check out the source code at https://github.com/slint-ui/slint