mirror of https://github.com/mpv-player/mpv
cocoa: gracefully quit from the Dock's context menu
quitting mpv from the Dock's context menu leaves the shell in a bad
state where you can't see your input any more and other weirdnesses.
in a big refactor (afdc9c4
) the method to handle this case was actually
copied over but the the code to register the event itself was removed or
forgotten by accident, leaving some lines of dead code. i re-added the
event and slightly adjusted the function. the function was slightly
changed so the head of it is consistent with our other events and it is
associated with this commit and functionality in the future.
This commit is contained in:
parent
b304d89e36
commit
05eb42f6e1
|
@ -101,6 +101,8 @@ static void terminate_cocoa_application(void)
|
||||||
NSAppleEventManager *em = [NSAppleEventManager sharedAppleEventManager];
|
NSAppleEventManager *em = [NSAppleEventManager sharedAppleEventManager];
|
||||||
[em removeEventHandlerForEventClass:kInternetEventClass
|
[em removeEventHandlerForEventClass:kInternetEventClass
|
||||||
andEventID:kAEGetURL];
|
andEventID:kAEGetURL];
|
||||||
|
[em removeEventHandlerForEventClass:kCoreEventClass
|
||||||
|
andEventID:kAEQuitApplication];
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,13 +208,17 @@ static void terminate_cocoa_application(void)
|
||||||
return [item autorelease];
|
return [item autorelease];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)theApp
|
- (void)applicationWillFinishLaunching:(NSNotification *)notification
|
||||||
{
|
{
|
||||||
return NSTerminateNow;
|
NSAppleEventManager *em = [NSAppleEventManager sharedAppleEventManager];
|
||||||
|
[em setEventHandler:self
|
||||||
|
andSelector:@selector(handleQuitEvent:withReplyEvent:)
|
||||||
|
forEventClass:kCoreEventClass
|
||||||
|
andEventID:kAEQuitApplication];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)handleQuitEvent:(NSAppleEventDescriptor*)e
|
- (void)handleQuitEvent:(NSAppleEventDescriptor *)event
|
||||||
withReplyEvent:(NSAppleEventDescriptor*)r
|
withReplyEvent:(NSAppleEventDescriptor *)replyEvent
|
||||||
{
|
{
|
||||||
[self stopPlayback];
|
[self stopPlayback];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue