From d2bc94c4b76dd44c634b68c61706627688260cbc Mon Sep 17 00:00:00 2001 From: Benno Date: Sat, 14 Jan 2017 20:06:12 +0100 Subject: [PATCH] Catch SIGTERM signal and fix brightness value storage. --- NativeDisplayBrightness/AppDelegate.m | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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];