From 842d267975e23fc54ff1a930703d021522676e54 Mon Sep 17 00:00:00 2001 From: Faizan Asad Date: Sun, 27 Sep 2026 18:50:03 +0500 Subject: [PATCH] fix: media keys skipping two tracks on Windows Next/Previous were handled by both the command manager and the SMTC ButtonPressed handler. Drop the duplicate handler (#136). --- src-tauri/src/windows_media.rs | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/src-tauri/src/windows_media.rs b/src-tauri/src/windows_media.rs index 150e5667..927a4022 100644 --- a/src-tauri/src/windows_media.rs +++ b/src-tauri/src/windows_media.rs @@ -13,7 +13,6 @@ use windows::{ }, Media::{ MediaPlaybackStatus, MediaPlaybackType, SystemMediaTransportControls, - SystemMediaTransportControlsButton, SystemMediaTransportControlsButtonPressedEventArgs, SystemMediaTransportControlsTimelineProperties, }, Storage::Streams::RandomAccessStreamReference, @@ -71,7 +70,6 @@ struct NativeMediaSession { _pause_token: i64, _next_token: i64, _previous_token: i64, - _button_pressed_token: i64, } impl WindowsMediaSession { @@ -188,27 +186,7 @@ impl NativeMediaSession { })) .map_err(|error| error.to_string())?; - let button_pressed_app = app.clone(); - let button_pressed_token = controls - .ButtonPressed(&TypedEventHandler::< - SystemMediaTransportControls, - SystemMediaTransportControlsButtonPressedEventArgs, - >::new(move |_sender, args| { - let Some(args) = args.as_ref() else { - return Ok(()); - }; - let action = match args.Button()? { - SystemMediaTransportControlsButton::Next => Some("next"), - SystemMediaTransportControlsButton::Previous => Some("previous"), - _ => None, - }; - if let Some(action) = action { - let _ = button_pressed_app.emit(MEDIA_CONTROL_EVENT, action); - } - Ok(()) - })) - .map_err(|error| error.to_string())?; - + // No ButtonPressed handler: Next/PreviousReceived already fire for it; both skipped twice (#136). let taskbar_toolbar = ThumbnailToolbar::new(&app).ok(); Ok(Self { @@ -221,7 +199,6 @@ impl NativeMediaSession { _pause_token: pause_token, _next_token: next_token, _previous_token: previous_token, - _button_pressed_token: button_pressed_token, }) }