The released callback is invoked when the user finished changing the value, for example
when the arrow key is released.
As a bonus, for the Qt implementation this fixes a few bugs in the keyboard handling:
- Handle orientation
- Implement click-to-focus
- Emit released also on key release
Co-authored-by: Luke D. Jones <luke@ljones.dev>
Achieve this by generating a `focus()` function for such components
and call it from the outside.
This replaces the previous focus handling with what should be cleaner:
- Any `forward-focus: some-element;` is basically syntactic sugar for
`public function focus() { some-element.focus(); }`.
- The init code gets simplified to calling focus() on the root, if it's
available.
Since the `focus()` functions are now generated in the imports pass,
they become visible in the style checker. That means the checker
requires consistent focus handling between the styles.