These are based on actual displays/devices.
A display-size-calculator ( https://www.sven.de/dpi/ ) was used to
calculate the width and height from resolution and diagonal display-size.
Some of these tests check for non-optimal results;
however, their purpose is mostly to make it noticeable
how changes to scaling-behaviour affect various
display-types.
When Squeekboard's scaling-behaviour will be improved, the tests
should be updated with values that fit the displays/devices better.
Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/640>
A redesign of popover was needed: it can no longer query the application state directly due to current state being its own actor, so instead the popover gets a dedicated copy of the relevant state.
I'm not entirely happy with the extra complexity of having an extra actor just for 1 string, but at least the duplication between C and Rust and mutual calls have been reduced.
This will help make the init procedure safer, by limiting the number of Rust objects that need to be carried to the C side and may be mangled on the way there.
The second benefit is that it allows outputs to become part of new state management.