Commit 7b1aa1ca authored by Felix Paul Kühne's avatar Felix Paul Kühne

macosx: using the updated SPMediaKeyTap, we can disable the controller on the...

macosx: using the updated SPMediaKeyTap, we can disable the controller on the fly and no longer need to restart VLC to do so (close #6613)
(cherry picked from commit 0aaae8bd58be075548276b3696b9badb998da28f)
parent cfdad448
...@@ -2097,30 +2097,14 @@ unsigned int CocoaKeyToVLC( unichar i_key ) ...@@ -2097,30 +2097,14 @@ unsigned int CocoaKeyToVLC( unichar i_key )
- (void)coreChangedMediaKeySupportSetting: (NSNotification *)o_notification - (void)coreChangedMediaKeySupportSetting: (NSNotification *)o_notification
{ {
b_mediaKeySupport = config_GetInt( VLCIntf, "macosx-mediakeys" ); b_mediaKeySupport = config_GetInt( VLCIntf, "macosx-mediakeys" );
if (b_mediaKeySupport) { if (b_mediaKeySupport)
{
if (!o_mediaKeyController) if (!o_mediaKeyController)
o_mediaKeyController = [[SPMediaKeyTap alloc] initWithDelegate:self]; o_mediaKeyController = [[SPMediaKeyTap alloc] initWithDelegate:self];
[o_mediaKeyController startWatchingMediaKeys]; [o_mediaKeyController startWatchingMediaKeys];
} }
else if (!b_mediaKeySupport && o_mediaKeyController) else if (!b_mediaKeySupport && o_mediaKeyController)
{ [o_mediaKeyController stopWatchingMediaKeys];
int returnedValue = NSRunInformationalAlertPanel(_NS("Relaunch required"),
_NS("To make sure that VLC no longer listens to your media key events, it needs to be restarted."),
_NS("Relaunch VLC"), _NS("Ignore"), nil, nil);
if( returnedValue == NSOKButton )
{
/* Relaunch now */
const char * path = [[[NSBundle mainBundle] executablePath] UTF8String];
/* For some reason we need to fork(), not just execl(), which reports a ENOTSUP then. */
if(fork() != 0)
{
exit(0);
return;
}
execl(path, path, NULL);
}
}
} }
@end @end
...@@ -2133,7 +2117,7 @@ unsigned int CocoaKeyToVLC( unichar i_key ) ...@@ -2133,7 +2117,7 @@ unsigned int CocoaKeyToVLC( unichar i_key )
// when user selects the quit menu from dock it sends a terminate: // when user selects the quit menu from dock it sends a terminate:
// but we need to send a stop: to properly exits libvlc. // but we need to send a stop: to properly exits libvlc.
// However, we are not able to change the action-method sent by this standard menu item. // However, we are not able to change the action-method sent by this standard menu item.
// thus we override terminat: to send a stop: // thus we override terminate: to send a stop:
// see [af97f24d528acab89969d6541d83f17ce1ecd580] that introduced the removal of setjmp() and longjmp() // see [af97f24d528acab89969d6541d83f17ce1ecd580] that introduced the removal of setjmp() and longjmp()
- (void)terminate:(id)sender - (void)terminate:(id)sender
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment