11th of April 2022 to 17th of April 2022

We hope you had happy Easter holidays!

Slint UI Library

New Features

  • Add a reset function to the model notifier (#1179)
  • corelib: allow to use i32 for coordinate instead of f32 (#1163)

    The prepare scene time for the scene that changes to the night mode in the printerdemo_mcu goes from 60ms to 50ms

  • Widget focus (#1135)

    Allow to use Tab/Shift-Tab to move the keyboard focus between widgets. Fix widgets in fluent and native style to accept focus and do something in response to key presses.

Changes to the .slint language

  • Allow .darker and .brighter on Brush (#1169)

Fixes

  • Property system: setting a binding must mark all dependent property as dirty (#1175)

    When resetting the binding, we need to mark dependent property as dirty. It just happened that the current implementation always set all bindings before starting to query the properties, so this problem was not seen before. But there is an exception when setting the two_way bindings, then we may set the binding after the property was queried because setting a two way binding actually queries the property

  • Ensure the C++ test binaries find the right libslint_cpp (#1171)

    Don't rely on cargo test setting the library search path environment for the dynamic linker.

    As per https://doc.rust-lang.org/cargo/reference/environment-variables.html#dynamic-library-paths PATH/LD_LIBRARY_PATH/etc. are set to include target/debug and "deps", but this is documented to be a legacy feature.

Documentation

  • Rework the global singleton section in the language reference (#1093)

    Remove the explanation of using two-way bindings to expose globals. While that still works of course, we don't need to mention it as the first example. Instead provide inline examples with Rust and C++ how to access the globals directly.

    The snippets will be hidden/shown by future markup, for now both are visible.

Janitor work

Remove the ugly style (#1060)

Other PRs: #1170

Other Crates and Libraries

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

Winit

  • Fix touch position being reported wrongly on TouchPhase::Ended (winit#2255)

    When all the receive from the compositor is TouchEvent::Down and TouchEvent::Up for the same id, we would record the touch position in the touch_points vector the first time. On TouchEvent::Up we'd find it and report TouchPhase::Ended with that location. The next time we receive TouchEvent::Down for the same id, we'd however unconditionally append a new TouchPoint to inner.touch_points, with the new position. On release however we'd find the earlier point and report its location, which basically means that TouchPhase::Ended always and forever reported the location of the very first touch down event.
    Instead, this patch updates an existing touch point location with the same id on TouchDown.

    Fixes winit#1996

Statistics

25 patches were committed in 15 pull requests by 3 authors.

← Next : 18th of April 2022 to 24th of April 2022 | Previous : 4th of April 2022 to 10th of April 2022


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