Cairo has a hacked together implementation of auto-hide. This PR adds support for auto-hide to AppBarWindow and AppBarManager so that any ManagedShell consumer can use auto-hide. It is also extensible so that, for example, shells can prevent auto-hide when attached panels etc are open.
I have ported Cairo to use the new auto-hide mechanism and have also used it to add auto-hide to RetroBar, so it seems to satisfy various use cases.
Also added an infinite-loop protection mechanism to AppBarManager from some unrelated debugging exercises that I thought would be good to keep.
Cairo has a hacked together implementation of auto-hide. This PR adds support for auto-hide to AppBarWindow and AppBarManager so that any ManagedShell consumer can use auto-hide. It is also extensible so that, for example, shells can prevent auto-hide when attached panels etc are open.
I have ported Cairo to use the new auto-hide mechanism and have also used it to add auto-hide to RetroBar, so it seems to satisfy various use cases.
Also added an infinite-loop protection mechanism to AppBarManager from some unrelated debugging exercises that I thought would be good to keep.