EarTrumpet
EarTrumpet copied to clipboard
EarTrumpet flyout does not close if Start Menu is also open
Description
When clicking the speaker icon to show the controls, the menu stay open when leaving to select another program, like Edge or Explorer, the menu shoud close instead when another window is selected.
Meta
- EarTrumpet version: 2.1.8.0
- Windows 10 21H1 (19043.1165)
Having same issue
I can't seem to reproduce that here on Windows 10 or 11. Can you maybe record a small video that demonstrates this? (WIN+G or screentogif or something else)
I have this issue but I have some hints for reproducing it which produce this consistently for me: While playing apex in borderless window mode I press the Windows key to open the start menu, then I click the EarTrumped logo and then I simply scroll the sliders with my mouse wheel while never clicking the window that pops up. When I then click back into apex or some other program it will not close but stay open.
Happening with satisfactory game
And league of legends
I can also replicate this with any borderless fullscreen window. It seems like the focus loss doesn't catch when a render surface within a window is clicked. Polling current focus would be an (expensive) effective solution; but I would imagine there's a way for the focus loss event to be captured.
Duplicate of https://github.com/File-New-Project/EarTrumpet/issues/311.
I've verified with engineering at Microsoft that this is a problem with Windows. When you open the Start Menu to show the notification area, those pieces of UI are elevated into a higher "z-band" or UI layer (think of a sandwich). When you interact with other UI, like the game, the messages that you're clicking outside the flyout don't work correctly because lower z-band items can't talk to higher z-band items.
Microsoft is working on fixing this but we won't see much until 2024 and it's very unlikely to be back ported to earlier OSes so will take closer to 5 years to fully roll out.
We have a workaround we're testing in EarTrumpet, will update this thread if we decide to deploy it.