Expand description
Panel state management.
This is effectively a mirror of the previous C code, with an explicit state machine managing the panel size.
It still relies on a callback from Wayland to accept the panel size, which makes this code somewhat prone to mistakes.
An alternative to the callback would be
to send a message all the way to state::State
every time the allocated size changes.
That would allow for a more holistic view
of interactions of different pieces of state.
However, state::State
already has the potential to become a ball of mud,
tightly coupling different functionality and making it difficult to see independent units.
For this reason, I’m taking a light touch approach with the panel manager,
and moving it just a bit closer to state::State
.
Hopefully ths still allows us to expose assumptions that were not stated yet
(e.g. can the output disappear between size request andallocation?).
Tight coupling, e.g. a future one between presented hints and layout size, will have to be taken into account later.
Modules§
Structs§
- Tries to contain all the panel sizing duties.
- Size in pixels that is aware of scaling
- Size 🔒
Enums§
- State 🔒This state requests the Wayland layer shell protocol synchronization: the application asks for some size, and then receives a size that the compositor thought appropriate. Stores raw values passed to Wayland, i.e. scaled dimensions.
- Update 🔒A command to send out to the next layer of processing. Here, it’s the C side of the panel.
Functions§
- div_
ceil 🔒