Save the activity on the application instance to ensure we hold a reference. Activiti...
authorCharlie Hess <charlie@slack-corp.com>
Tue, 3 May 2016 21:57:16 +0000 (14:57 -0700)
committerCharlie Hess <charlie@slack-corp.com>
Tue, 3 May 2016 21:57:16 +0000 (14:57 -0700)
atom/browser/browser_mac.mm
atom/browser/mac/atom_application.h
atom/browser/mac/atom_application.mm

index a12bd8c880993ad564f9b7d4911f595325489640..58ee84613e4ea34e54fec918defe414e33676ff5 100644 (file)
@@ -89,7 +89,7 @@ void Browser::SetAppUserModelID(const base::string16& name) {
 
 void Browser::SetUserActivity(const std::string& type, const std::map<std::string, std::string>& user_info) {
   NSString* type_ns = [NSString stringWithUTF8String:type.c_str()];
-  NSUserActivity *user_activity = [[NSUserActivity alloc] initWithActivityType:type_ns];
+  NSUserActivityuser_activity = [[NSUserActivity alloc] initWithActivityType:type_ns];
 
   NSMutableArray* user_info_args = [[NSMutableArray alloc] init];
   for (auto const &pair : user_info) {
@@ -102,6 +102,8 @@ void Browser::SetUserActivity(const std::string& type, const std::map<std::strin
 
   user_activity.userInfo = [[NSDictionary alloc] initWithObjectsAndKeys:user_info_args, nil];
   [user_activity becomeCurrent];
+
+  [[AtomApplication sharedApplication] setUserActivity:user_activity];
 }
 
 std::string Browser::GetExecutableFileVersion() const {
index 9fafb054b09abce8b3ef6a4af1f778c80d919f3d..e31a9926eb39e0a893854e1fd3943ac63decb3a3 100644 (file)
@@ -8,6 +8,7 @@
                                            CrAppControlProtocol> {
  @private
   BOOL handlingSendEvent_;
+  NSUserActivity* currentActivity_;
 }
 
 + (AtomApplication*)sharedApplication;
@@ -18,4 +19,8 @@
 // CrAppControlProtocol:
 - (void)setHandlingSendEvent:(BOOL)handlingSendEvent;
 
+- (NSUserActivity*)getCurrentActivity;
+
+- (void)setCurrentActivity:(NSUserActivity*)userActivity;
+
 @end
index cc9c6accc83dcb7260413fcc9a1184368724a3fa..3fe6658e4cf95aa09145ecc22f44f7ec2e142b42 100644 (file)
   handlingSendEvent_ = handlingSendEvent;
 }
 
+- (void)setCurrentActivity:(NSUserActivity*)userActivity {
+  currentActivity_ = userActivity;
+}
+
+- (NSUserActivity*)getCurrentActivity {
+  return currentActivity_;
+}
+
 - (void)awakeFromNib {
   [[NSAppleEventManager sharedAppleEventManager]
       setEventHandler:self