MusicMode: don't bindPlayerToLayer when entering foreground

fixes #617
This commit is contained in:
Toni Förster 2024-04-25 16:49:02 +02:00
parent d1cf45c6a1
commit c41b635276
No known key found for this signature in database
GPG Key ID: 292F3E5086C83FC7

View File

@ -176,7 +176,7 @@ final class PlayerModel: ObservableObject {
@Default(.resetWatchedStatusOnPlaying) var resetWatchedStatusOnPlaying @Default(.resetWatchedStatusOnPlaying) var resetWatchedStatusOnPlaying
@Default(.playerRate) var playerRate @Default(.playerRate) var playerRate
@Default(.systemControlsSeekDuration) var systemControlsSeekDuration @Default(.systemControlsSeekDuration) var systemControlsSeekDuration
#if os(macOS) #if os(macOS)
@Default(.buttonBackwardSeekDuration) private var buttonBackwardSeekDuration @Default(.buttonBackwardSeekDuration) private var buttonBackwardSeekDuration
@Default(.buttonForwardSeekDuration) private var buttonForwardSeekDuration @Default(.buttonForwardSeekDuration) private var buttonForwardSeekDuration
@ -192,7 +192,7 @@ final class PlayerModel: ObservableObject {
var onPlayStream = [(Stream) -> Void]() var onPlayStream = [(Stream) -> Void]()
var rateToRestore: Float? var rateToRestore: Float?
private var remoteCommandCenterConfigured = false private var remoteCommandCenterConfigured = false
#if os(macOS) #if os(macOS)
var keyPressMonitor: Any? var keyPressMonitor: Any?
#endif #endif
@ -935,7 +935,10 @@ final class PlayerModel: ObservableObject {
#else #else
func handleEnterForeground() { func handleEnterForeground() {
setNeedsDrawing(presentingPlayer) setNeedsDrawing(presentingPlayer)
avPlayerBackend.bindPlayerToLayer()
if !musicMode {
avPlayerBackend.bindPlayerToLayer()
}
guard closePiPAndOpenPlayerOnEnteringForeground, playingInPictureInPicture else { guard closePiPAndOpenPlayerOnEnteringForeground, playingInPictureInPicture else {
return return
@ -1158,7 +1161,7 @@ final class PlayerModel: ObservableObject {
return nil return nil
} }
#if os(macOS) #if os(macOS)
private func assignKeyPressMonitor() { private func assignKeyPressMonitor() {
keyPressMonitor = NSEvent.addLocalMonitorForEvents(matching: .keyDown) { keyEvent -> NSEvent? in keyPressMonitor = NSEvent.addLocalMonitorForEvents(matching: .keyDown) { keyEvent -> NSEvent? in
@ -1193,7 +1196,7 @@ final class PlayerModel: ObservableObject {
return nil return nil
} }
} }
private func destroyKeyPressMonitor() { private func destroyKeyPressMonitor() {
if let keyPressMonitor = keyPressMonitor { if let keyPressMonitor = keyPressMonitor {
NSEvent.removeMonitor(keyPressMonitor) NSEvent.removeMonitor(keyPressMonitor)