1
1
mirror of https://github.com/danbee/persephone synced 2025-03-04 08:39:11 +00:00
persephone/Persephone/Components/Window/MainWindow.swift
Daniel Barber 46dcd60ed1
Better keyboard shortcuts
* Override `window.sendEvent` to implement global [space] play/pause
* Add Controls menu to implement stop, prev, next as ⌘., ⌘← and ⌘→
2020-03-07 17:47:00 -05:00

34 lines
731 B
Swift

//
// MainWindow.swift
// Persephone
//
// Created by Daniel Barber on 2019/2/22.
// Copyright © 2019 Dan Barber. All rights reserved.
//
import AppKit
class MainWindow: NSWindow {
override func sendEvent(_ event: NSEvent) {
guard let responder = firstResponder else { return }
if event.type == .keyDown &&
doesNotRequireSpace(responder) {
switch event.keyCode {
case NSEvent.keyCodeSpace:
App.mpdClient.playPause()
default:
super.sendEvent(event)
}
} else {
super.sendEvent(event)
}
}
func doesNotRequireSpace(_ responder: NSResponder) -> Bool {
return !responder.isKind(of: NSText.self) &&
!responder.isKind(of: NSButton.self)
}
}