Revision: 15548 http://sourceforge.net/p/skim-app/code/15548 Author: hofman Date: 2025-06-24 16:48:36 +0000 (Tue, 24 Jun 2025) Log Message: ----------- make custom app delegate methods not notifications
Modified Paths: -------------- trunk/SKApplication.h trunk/SKApplication.m trunk/SKApplicationController.m Modified: trunk/SKApplication.h =================================================================== --- trunk/SKApplication.h 2025-06-24 16:39:46 UTC (rev 15547) +++ trunk/SKApplication.h 2025-06-24 16:48:36 UTC (rev 15548) @@ -40,13 +40,10 @@ NS_ASSUME_NONNULL_BEGIN -extern NSString *SKApplicationStartsTerminatingNotification; -extern NSString *SKApplicationWillNotTerminateNotification; - @protocol SKApplicationDelegate <NSApplicationDelegate> @optional -- (void)applicationStartsTerminating:(NSNotification *)aNotification; -- (void)applicationWillNotTerminate:(NSNotification *)aNotification; +- (void)applicationStartsTerminating:(NSApplication *)application; +- (void)applicationWillNotTerminate:(NSApplication *)application; @end @class SPUStandardUpdaterController; Modified: trunk/SKApplication.m =================================================================== --- trunk/SKApplication.m 2025-06-24 16:39:46 UTC (rev 15547) +++ trunk/SKApplication.m 2025-06-24 16:48:36 UTC (rev 15548) @@ -44,8 +44,6 @@ #import "NSString_SKExtensions.h" #import "SKPreferenceController.h" -NSString *SKApplicationStartsTerminatingNotification = @"SKApplicationStartsTerminatingNotification"; -NSString *SKApplicationWillNotTerminateNotification = @"SKApplicationWillNotTerminateNotification"; @implementation SKApplication @@ -75,29 +73,18 @@ } - (IBAction)terminate:(id)sender { - [[NSNotificationCenter defaultCenter] postNotificationName:SKApplicationStartsTerminatingNotification object:self]; + if ([[self delegate] respondsToSelector:@selector(applicationStartsTerminating:)]) + [[self delegate] applicationStartsTerminating:self]; [super terminate:sender]; } // this is also called after NSDocumentController reviews unsaved documents - (void)replyToApplicationShouldTerminate:(BOOL)shouldTerminate { - if (shouldTerminate == NO) - [[NSNotificationCenter defaultCenter] postNotificationName:SKApplicationWillNotTerminateNotification object:self]; + if (shouldTerminate == NO && [[self delegate] respondsToSelector:@selector(applicationWillNotTerminate:)]) + [[self delegate] applicationWillNotTerminate:self]; [super replyToApplicationShouldTerminate:shouldTerminate]; } -- (void)setDelegate:(id<SKApplicationDelegate>)delegate { - if ([[self delegate] respondsToSelector:@selector(applicationStartsTerminating:)]) - [[NSNotificationCenter defaultCenter] removeObserver:[self delegate] name:SKApplicationStartsTerminatingNotification object:self]; - if ([[self delegate] respondsToSelector:@selector(applicationWillNotTerminate)]) - [[NSNotificationCenter defaultCenter] removeObserver:[self delegate] name:SKApplicationWillNotTerminateNotification object:self]; - [super setDelegate:delegate]; - if ([[self delegate] respondsToSelector:@selector(applicationStartsTerminating:)]) - [[NSNotificationCenter defaultCenter] addObserver:[self delegate] selector:@selector(applicationStartsTerminating:) name:SKApplicationStartsTerminatingNotification object:self]; - if ([[self delegate] respondsToSelector:@selector(applicationWillNotTerminate:)]) - [[NSNotificationCenter defaultCenter] addObserver:[self delegate] selector:@selector(applicationWillNotTerminate:) name:SKApplicationWillNotTerminateNotification object:self]; -} - - (BOOL)willDragMouse { return NSEventTypeLeftMouseDragged == [[self nextEventMatchingMask:(NSEventMaskLeftMouseUp | NSEventMaskLeftMouseDragged) untilDate:[NSDate distantFuture] inMode:NSEventTrackingRunLoopMode dequeue:NO] type]; } Modified: trunk/SKApplicationController.m =================================================================== --- trunk/SKApplicationController.m 2025-06-24 16:39:46 UTC (rev 15547) +++ trunk/SKApplicationController.m 2025-06-24 16:48:36 UTC (rev 15548) @@ -298,7 +298,7 @@ return reply; } -- (void)applicationStartsTerminating:(NSNotification *)aNotification { +- (void)applicationStartsTerminating:(NSApplication *)application; { for (NSDocument *doc in [[NSDocumentController sharedDocumentController] documents]) { if ([doc interactionMode] == SKPresentationMode) { [doc setInteractionMode:SKNormalMode]; @@ -315,7 +315,7 @@ [self registerCurrentDocuments:nil]; } -- (void)applicationWillNotTerminate:(NSNotification *)aNotification { +- (void)applicationWillNotTerminate:(NSApplication *)application; { if (currentDocumentsTimer == nil) [self registerForCurrentDocumentsNotifications]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit