vlc | branch: master | Marvin Scholz <epira...@gmail.com> | Thu Oct 22 18:18:51 2015 +0200| [a4baa14604589df63243a32cd9ca97236eee4d4c] | committer: Jean-Baptiste Kempf
osx_notifications: Show notification only if VLC in background, cleanup This cleans up unnecessary code which could be replaced by a much simple check to determine if VLC is in foreground or not. Add a missing release. Signed-off-by: Jean-Baptiste Kempf <j...@videolan.org> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a4baa14604589df63243a32cd9ca97236eee4d4c --- modules/notify/osx_notifications.m | 37 ++++++------------------------------ 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/modules/notify/osx_notifications.m b/modules/notify/osx_notifications.m index 73bcd9e..6077f3a 100644 --- a/modules/notify/osx_notifications.m +++ b/modules/notify/osx_notifications.m @@ -86,7 +86,6 @@ NSString *notificationType; NSMutableDictionary *registrationDictionary; id lastNotification; - BOOL isInForeground; intf_thread_t *interfaceThread; } @@ -289,21 +288,6 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var, registrationDictionary = nil; interfaceThread = thread; - // Assume we start in foreground - isInForeground = YES; - - // Subscribe to notifications to determine if VLC is in foreground or not - @autoreleasepool { - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(applicationActiveChange:) - name:NSApplicationDidBecomeActiveNotification - object:nil]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(applicationActiveChange:) - name:NSApplicationDidResignActiveNotification - object:nil]; - } return self; } @@ -317,7 +301,6 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var, removeDeliveredNotification:(NSUserNotification *)lastNotification]; [lastNotification release]; } - [[NSNotificationCenter defaultCenter] removeObserver:self]; } #endif @@ -356,6 +339,10 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var, andArtUrl:(const char *)url { @autoreleasepool { + // Do not notify if in foreground + if ([NSApplication sharedApplication].active) + return; + // Init Cover NSData *coverImageData = nil; NSImage *coverImage = nil; @@ -375,6 +362,7 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var, } else { // Without title, notification makes no sense, so return here // title should never be empty, but better check than crash. + [coverImage release]; return; } if (artist) @@ -447,17 +435,11 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var, return applicationName; } -- (void)applicationActiveChange:(NSNotification *)n { - if (n.name == NSApplicationDidBecomeActiveNotification) - isInForeground = YES; - else if (n.name == NSApplicationDidResignActiveNotification) - isInForeground = NO; -} - #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 - (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification { + // Skip to next song if (notification.activationType == NSUserNotificationActivationTypeActionButtonClicked) { playlist_Next(pl_Get(interfaceThread)); } @@ -474,12 +456,5 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var, [notification retain]; lastNotification = notification; } - -- (BOOL)userNotificationCenter:(NSUserNotificationCenter *)center - shouldPresentNotification:(NSUserNotification *)notification -{ - // Show notifications regardless if App in foreground or background - return YES; -} #endif @end _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits