AlexPerathoner / SlimHUD

Replacement for MacOS' volume, brightness and keyboard backlight HUDs.
https://alexperathoner.github.io/SlimHUD
GNU General Public License v3.0
394 stars 9 forks source link

SlimHUD shrinks when the hide animation is interrupted ("side grow" style) #135

Open towerofnix opened 1 year ago

towerofnix commented 1 year ago

Before opening the issue, have you...?

Describe the bug

SlimHUD doesn't handle its "hide" animation being interrupted cleanly. There's some weird flickering to do with animation state, and at least in the case of "side grow" style, it ends up shrunk down for some reason. This issue doesn't resolve itself even after SlimHUD has fully hidden and been re-shown (the only way to fix it is to fully quit and reopen SlimHUD).

Steps to reproduce

Change the volume/brightness to show SlimHUD. Then wait for the bar to start hiding. While it's in the progress of hiding, interrupt it by changing the volume/brightness again.

I haven't tested other animations so the broken scaling might only be an issue with "side grow", but there may be similar bugs in other style show/hide animations.

Expected behavior

Animation state is handled smoothly, either by reversing course while the hide animation is part through, or just resetting to progress-zero on the show state.

I haven't checked how animation state is handled by SlimHUD but I'm guessing this is just an issue with not cancelling the hide animation when the show animation is started!

Anything else?

https://user-images.githubusercontent.com/9948030/229180257-f1831010-bef5-438f-a1aa-036eabb9b09a.mp4

Environment Information (please complete the following information)

- macOS version: 13.4 Ventura beta 1 (this is an issue on 13.3 as well)
- Mac model: Mac Mini M1
- Monitor(s): M28U
- Apple Silicon/M1 (yes or no): yeppers
AlexPerathoner commented 1 year ago

The animation should be getting cancelled, as per #128 . If I remember correctly I removed the final state of the hide animation, as that would have created a flickering - and that final state also includes the size and position of the hud. So when the animation is cancelled at the wrong moment, it gets set to a wrong value. I'll look into it

SoCuul commented 1 year ago

Any progress on this?