From fe33cae87bf2eb5f5557ae726b5533bffcff7fe6 Mon Sep 17 00:00:00 2001 From: Akaps316 <48785708+Akaps316@users.noreply.github.com> Date: Sat, 13 Jun 2026 22:42:16 +0530 Subject: [PATCH] fix(mac_videoplayer): restore previous volume on unmute Save the non-zero volume level before muting, and restore it on the second toggle call. If the saved volume was zero or uninitialized, unmute defaults to a volume of 0.5. Closes Euro-Office/desktop-sdk#6 Assisted-by: Antigravity:gemini-3.5-flash Signed-off-by: Akaps316 <48785708+Akaps316@users.noreply.github.com> --- .../lib/src/mac_videoplayer/playercontroller.mm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ChromiumBasedEditors/lib/src/mac_videoplayer/playercontroller.mm b/ChromiumBasedEditors/lib/src/mac_videoplayer/playercontroller.mm index 8374c2290..3b9242af6 100644 --- a/ChromiumBasedEditors/lib/src/mac_videoplayer/playercontroller.mm +++ b/ChromiumBasedEditors/lib/src/mac_videoplayer/playercontroller.mm @@ -16,6 +16,7 @@ @interface NSPlayerControllerBridge () // time slider dragging info bool m_is_drag; float m_rate_before_drag; + float m_volume_before_mute; } // button callbacks - (void)onBtnPlayPausePressed:(NSIconPushButton*)sender; @@ -39,6 +40,7 @@ - (instancetype)initWithPlayer:(AVPlayer*)player videoView:(NSVideoView*)video_v m_player = player; m_video_view = video_view; m_footer = footer; + m_volume_before_mute = m_player.volume; // PLAY & PAUSE // UI button action @@ -237,8 +239,12 @@ - (void)setVolume:(CGFloat)value { } - (void)toggleMute { - // TODO: restore previous volume on second call - [self setVolume:0]; + if (m_player.volume > 0.0) { + m_volume_before_mute = m_player.volume; + [self setVolume:0.0]; + } else { + [self setVolume:(m_volume_before_mute > 0.0 ? m_volume_before_mute : 0.5)]; + } } - (void)stop {