cairoshell / ManagedShell

A library for creating Windows shell replacements using .NET.
https://www.nuget.org/packages/ManagedShell/
Apache License 2.0
301 stars 25 forks source link

Add auto-hide support for AppBars #76

Closed dremin closed 1 year ago

dremin commented 1 year ago

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.