Move panel hiding to the shell clients #2239
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Requires #2229
We rename WindowPositioner to PositionedWindow and introduce a class ShellWindow that derives from PositionedWindow.
The ShellWindow is the new thing that's used e.g. for centered windows.
It's responsible for showing and hiding the window with an animation that depends on the position (e.g. slide in and out for TOP and BOTTOM, opacity for CENTERED).
We need this because with the new shell group every shell window is responsible itself for when to hide and show depending on the state (e.g. open multitaskingview). Therefore we also introduce a ShellWindow.State flags enum which will cause the window to hide if at least one flag that indicates hide is set.
Currently only the multitasking view notifies all shellwindows (via the manager) when it's active so that they can hide accordingly but we might add more cases here. There's also a CUSTOM_HIDDEN state that can be used by consumers of the shell window to force hide it (e.g. the panel window which derives from it force hides depending on the hide mode).