Description of the bug :
The audio part of ModernFlyouts is not shown/triggered when the volume is changed through a knob/dial in a USB speaker or headphones (wireless or wired), it will only shown the corresponding media keys are pressed. The old flyout is shown in that case.
Expected Behavior :
The audio part of ModernFlyouts should be shown when the volume is also changed through means other than media keys
Additional context
Source - reddit comments :
This also happens when change volume with touchpad. Mine supports precision driver, not sure if this a thing for others.

Hey @Dubzer, can you rebuild and test this app again to see if this issue persist with your touchpad? It should be solved by now due to the contribution from @ADeltaX. Can you please verify it?
Still shows an old flyout. But if new flyout has been opened by pressing media key, it captures volume changes by touchpad
Here's a video demo: https://lithi.io/file/B9rb.mp4
I think DUIHook doesn't get triggered properly, hmmm...
What do you think @ShankarBUS ?
The DUIHook can only notify the native UI's events. It can't detect which UI (i.e. brightness/audio, etc) is shown. Each helper must trigger on their own (with your implementation, the audio & brightness helpers are triggered by shell messages) and the FlyoutHandler will hide the native when the helper need to show UIs. DUIHook has nothing to do with triggering anything. DUIHook can be completely removed if the native UI is permanently hidden on start. It's only a safety measure to fallback to the native UI when the case couldn't be handled by our app (originally created as a fallback for brightness flyout).
My guess is the shell hook messages are not received when the touchpad is used. (Even though it should be)
Hey @Dubzer, are you 100% you used the latest build, can you recheck it with v0.3.0 release?
@ShankarBUS I used the latest release version
Ok, I managed to repro with your exact settings. The touchpad doesn't use shellhook.
In fact there is a tiny bug: if you set "play/pause" as touchpad click, it will toggle the play/pause but it will not show the UI at all. So even MS' one isn't reliable lol
I'll see what I can do.
Further digging:
Touchpad scrolling (audio) is handled by "TouchpadVolumeGestureHandler" which will show the "HardwareButtonFlyout" directly with no "system" notifications (hint: twinui.dll). Basically it renders "impossible" to hook. For the moment I haven't found anything API/Interface that I can try to "talk" into.
Also having this issue with a Bluetooth speaker on V0.4.1 (Microsoft Store)
@oscargb1
Sorry for your inconvenience 😅. I will try my best to solve this issue. Be patient until this bug is fixed.
Any updates to this? @ShankarBUS @ADeltaX
@Cyberdroid1,
The only workaround for this that I can come up for now is to show the audio flyout whenever the native flyout is shown (and not interrupted by other modules).
If I had a wireless/wired headset/headphones/earphones with media or volume buttons, I would've found out the shell messages of those signals and implemented a fix a long time ago. But unfortunately I don't.
Give me some more time 😅. aΔx, ya know anythin?
If I had a wireless/wired headset/headphones/earphones with media or volume buttons, I would've found out the shell messages of those signals and implemented a fix a long time ago. But unfortunately I don't.
Is there anything we can do to help you with this?
@Dubzer,
Is there anything we can do to help you with this?
Shit! I just realized how dumb I am 🤦♂️. I should've asked you this long ago. I completely forgot there are people out there with those devices 🤦♂️.
ShellHookDBG.exe (made by @ADeltaX). ShellHookDBG.zipCould you do this 🥺?
@ShankarBUS I actually don't have any devices with buttons, but I tried touchpad gestures and it didn't logged anything
@ShankarBUS
I tried this on my headphone's buttons, and with my touchpad, but nothing was logged. The logger is working though, as it logs properly for the media controls on my keyboard.
If there's anything I can do to help, please let me know.
testing media buttons first then bluetooth headset buttons
49192 | Res:HOOK_MEDIA_VOLPLUS
49192 | Res:HOOK_MEDIA_VOLMINUS
49192 | Res:HOOK_MEDIA_VOLMUTE
49192 | Res:HOOK_MEDIA_NEXT
49192 | wParam: 6 | lParam: 132222
49192 | Res:HOOK_MEDIA_PLAYPAUSE
49192 | wParam: 6 | lParam: 132222
49192 | Res:HOOK_MEDIA_PREVIOUS
49192 | wParam: 6 | lParam: 132222
now bluetooth buttons(these didn't trigger the modern flyout)
49192 | wParam: 6 | lParam: 132222 (pause)
49192 | wParam: 6 | lParam: 132222 (play)
49192 | wParam: 6 | lParam: 132222 (next)
49192 | wParam: 6 | lParam: 132222 (previous)
bluetooth volume doesn't log but play/pause/next/previous button log
Hope this helps.
Hmm.
Thank you so much @Parth-Mawai!
Any idea when this will be updated?
any updates?
Most helpful comment
This also happens when change volume with touchpad. Mine supports precision driver, not sure if this a thing for others.