[vlc-commits] osx_notifications: Show notification only if VLC in background, cleanup
Marvin Scholz
git at videolan.org
Fri Oct 23 11:28:51 CEST 2015
vlc | branch: master | Marvin Scholz <epirat07 at 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 <jb at 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
More information about the vlc-commits
mailing list