aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar reed <reed@chromium.org>2014-10-07 03:59:34 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-10-07 03:59:34 -0700
commit3fc02f172099533dcdc86a9e5ccdda486d40a004 (patch)
tree91eaf37e7b4b584449a6073c61b3d624430bd95e /src
parent5397725ca732e3ae9941b561df8281dd0b28bda7 (diff)
override applicationShouldTerminate so we can cleanup when we quit
BUG=skia: TBR= Review URL: https://codereview.chromium.org/636723002
Diffstat (limited to 'src')
-rw-r--r--src/views/mac/SampleAppDelegate.h3
-rw-r--r--src/views/mac/SampleAppDelegate.mm9
-rw-r--r--src/views/mac/skia_mac.mm4
3 files changed, 16 insertions, 0 deletions
diff --git a/src/views/mac/SampleAppDelegate.h b/src/views/mac/SampleAppDelegate.h
index 8f2bead7bd..e22ad9d6ea 100644
--- a/src/views/mac/SampleAppDelegate.h
+++ b/src/views/mac/SampleAppDelegate.h
@@ -21,4 +21,7 @@
@property (assign) IBOutlet SkOptionsTableView* fOptions;
- (IBAction)toiPadSize:(id)sender;
+
+- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
+
@end
diff --git a/src/views/mac/SampleAppDelegate.mm b/src/views/mac/SampleAppDelegate.mm
index 91dcada888..8211ad9c48 100644
--- a/src/views/mac/SampleAppDelegate.mm
+++ b/src/views/mac/SampleAppDelegate.mm
@@ -1,4 +1,7 @@
#import "SampleAppDelegate.h"
+
+#include "SkApplication.h"
+
@implementation SampleAppDelegate
@synthesize fWindow, fView, fOptions;
@@ -13,4 +16,10 @@
NSRect frame = NSMakeRect(fWindow.frame.origin.x, fWindow.frame.origin.y, 768, 1024);
[fWindow setFrame:frame display:YES animate:YES];
}
+
+- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender {
+ application_term();
+ return NSTerminateNow;
+}
+
@end
diff --git a/src/views/mac/skia_mac.mm b/src/views/mac/skia_mac.mm
index e3c31c40f6..393e6d8141 100644
--- a/src/views/mac/skia_mac.mm
+++ b/src/views/mac/skia_mac.mm
@@ -14,7 +14,11 @@ int main(int argc, char *argv[]) {
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
application_init();
int retVal = NSApplicationMain(argc, (const char **)argv);
+
+#if 0
+ // we don't expect NSApplicationMain to return. See our applicationShouldTerminate handler.
application_term();
[pool release];
+#endif
return retVal;
}