Skip to content

Add volume flyout sync toggle - #1198

Open
lgc2333 wants to merge 1 commit into
unchihugo:masterfrom
lgc2333:codex/volume-sync-media-flyout
Open

lgc2333 wants to merge 1 commit into
unchihugo:masterfrom
lgc2333:codex/volume-sync-media-flyout

Conversation

@lgc2333

@lgc2333 lgc2333 commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a volume setting above the volume flyout stay-duration control for linking manual media flyout triggers with the volume flyout.

Taskbar widget and tray "show media flyout" entries now go through a wrapper that:

  • shows media first, then volume, when opening
  • starts the volume hide animation before the media hide animation on toggle-close, without waiting between them

These popups are visually syncing when open btw

Media-key and volume-key paths keep their existing direct calls. Auto stay-duration behavior is still timer-driven, so matching media/volume durations naturally collapse together without extra close synchronization.

image

Motivation

closes #1050

Type of Change

  • Feature

Checklist

  • Code changes are manually tested and working.
  • Formatting and naming are consistent with the project.
  • Self-review of changes is done.
  • AI tools were used (if yes, I reviewed and fully understand the changes myself).

Resubmission of #1058.

Adds a volume setting to show and hide the volume flyout together with the
media flyout when it is opened from the tray icon or the taskbar widget.

Co-authored-by: Codex <codex@openai.com>
@github-actions github-actions Bot added MainWindow / Media Flyout Changes to MainWindow including the Media Flyout Volume Flyout Changes to the Volume Flyout or Volume Mixer Taskbar Widget Changes to the Taskbar Media Widget labels Oct 9, 2026

@unchihugo unchihugo left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @lgc2333, thanks for the PR. Is there still any use for the ShowMediaFlyout() method? Also, let's keep this setting true by default, and move it to the advanced settings since it's a bit technical. Does that sound good to you?

@lgc2333

lgc2333 commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor Author

Thanks for taking a look.

On ShowMediaFlyout: it's still called from four places. The debounced shortcut path, the seekbar relayout, the mouse-enter keep-alive and the close button in the flyout. The wrapper only takes over the tray icon and the taskbar widget, so nothing is orphaned there.

If you did mean it should absorb this, the wrapper re-checks three conditions ShowMediaFlyout already checks itself: an active session, fullscreen, and the flyout being enabled. That copy can drift the day someone adds a fourth guard in there. Having ShowMediaFlyout return whether it actually showed would drop the duplication without touching any call site, since they can all ignore the return value. Folding the sync logic into ShowMediaFlyout itself is the other option, but then the mouse-enter keep-alive and the seekbar relayout would sync the volume flyout too, and neither of them should. That leaves us needing an entry flag anyway, which is the wrapper under another name.

I'd go further on the setting. The volume flyout already comes up together with the media flyout on media and volume keys, in both HookCallback and WndProc. The tray icon and the widget were the only entries that skipped it. #1050 was written the same way, as a feature request or likely a bug report.

So my preference is to delete the setting, the card and the strings, and let this be plain behavior. It also keeps one more string out of Weblate, where it would have to be translated into 30 languages.

Your version works and it's the safer one. If you'd rather keep the option, I'll set it true by default and move the card to the advanced page. The toggle only really matters for people who want the volume flyout on volume keys but not on every media flyout open, and without it their only escape is turning the volume flyout off entirely.

Which way do you want it? Rewriting the PR is quick either way.

@unchihugo

Copy link
Copy Markdown
Owner

I think it's best we remove the option, and make this the default behavior indeed. It's a good quality-of-life update.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

MainWindow / Media Flyout Changes to MainWindow including the Media Flyout Taskbar Widget Changes to the Taskbar Media Widget Volume Flyout Changes to the Volume Flyout or Volume Mixer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE REQUEST] 音量浮窗随任务栏组件或托盘图标的点击而一并弹出

2 participants