diff --git a/NativeDisplayBrightness/AppDelegate.m b/NativeDisplayBrightness/AppDelegate.m index 8910d51..fd8cd2f 100644 --- a/NativeDisplayBrightness/AppDelegate.m +++ b/NativeDisplayBrightness/AppDelegate.m @@ -152,6 +152,7 @@ - (void)_loadBrightness - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + delegateInstance = self; if (![self _loadBezelServices]) { [self _loadOSDFramework]; @@ -160,10 +161,28 @@ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification [self _checkTrusted]; [self _registerGlobalKeyboardEvents]; [self _loadBrightness]; + [self _registerSignalHandling]; +} + +__weak AppDelegate *delegateInstance = nil; + +void shutdownSignalHandler(int signal) { + NSLog(@"Caught SIGTERM"); + [delegateInstance _willTerminate]; +} + +- (void)_registerSignalHandling +{ + signal(SIGTERM, shutdownSignalHandler); } - (void)applicationWillTerminate:(NSNotification *)aNotification +{ + [self _willTerminate]; +} + +- (void)_willTerminate { NSLog(@"willTerminate"); [self _saveBrightness];