18th of July 2022 to 24th of July 2022

Slint UI Library

The Skia rendering backend was started last week and is coming along fine. This week there were commits making the rendering more separate from other aspects of Slint, so that doing new renderers like the Skia one will become easier.


  • Detect loop on the property itself (#1422)

    This is the most basic loop and we wouldn't notice it.

    Turn out the comment was wrong and Slint won't emit the error twice for two ways binding to itself

    Fixes #1407

  • Rendering metrics collector fixes (#1424)
  • Fix the AboutSlint in fluent style with dark style desktop (#1420)

    The widget shouldn't reach into the NativeStyleMetrics directly, it should get the information from the StyleMetrics which return the right value (which isn't dark style, for the fluent style)

  • Change Slint enum values to be PascalCase in rust (#1418)

    … while still being kebab-case in .slint Some enums might become public API and we want to have them as PascalCase to respect the rust conventions

    Not the change to KeyEventType: That enum isn't used in any builtin things anyway, so it shouldn't get used at all in .slint code.

  • Clipboard refactoring (#1415)

    This moves the clipboard functionality from the backend to the Window, due to the inherent connection of access to the system clipboard with the windowing system. In theory this could be part of an event loop interface (which maintains the display connection), but in the absence of that it is in the Window now.

    This also adds support for the clipboard on wayland, in consequence.

  • C++: don't force the SLINT_STYLE cmake variable (#1409)

    Keep the default if unset, otherwise use whatever SLINT_STYLE passed

Janitor work

  • Better separation winit and femtovg (#1414, #1427)

    This separates the FemtoVG renderer more from winit related code.

  • Clean up the background color handling in the GL backend (#1426)

    Just like the software renderer, query the background color when rendering and use it as clear color.

    In the simulator this was an unused field (because the software renderer already does the right thing).

  • Upgrade to lyon 1.0 (#1425)
  • Rename i_slint_core::window::Window into WindowInner and use the public Window in the interface (#1423)

    There already is api::Window and also the Window element (WindowItem) so rename the inner part to avoid confusion.

    Also use the public window more in the interfaces.

  • Online editor: change the default snippet (#1421)
    • Use a HorizontalBox instead of manual layout
    • Don't import random widgets
    • remove comments about 'px' that ends up in all reproduced testcase :-)
  • Split the properties.rs file in modules (#1413)
  • Rename PropertyChangeHandler to PropertyDirtyHandler (#1412)

    The handler is called whenever the properties it depends on becomes dirty, not when it changes.

    This has caused confusion before, so rename it

  • Simplify PopupWindow handling (#1411)

    When the popup is an overlay on the window, then there is no need for the backend to do anything

  • Image decoding in corelib (#1408)

    This is a merge request to bring the image decoding into the core library and leave the backends with just the rendering part. This means using image-rs in the corelib, as well as usvg for svg rendering.

Other Crates and Libraries

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

Document Features

  • Released document-features 0.2.2 with a fix for issue #9: Fix parsing of dependencies or feature that spans across several lines


65 patches committed in 18 pull requests by 2 authors.

← Next : 25th of July 2022 to 31st of July 2022 | Previous : 11th of July 2022 to 17th of July 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