Add the AppDelegate override for restoring from hand-off, and fire the app event.
authorCharlie Hess <charlie@slack-corp.com>
Sat, 30 Apr 2016 00:37:01 +0000 (17:37 -0700)
committerCharlie Hess <charlie@slack-corp.com>
Sat, 30 Apr 2016 00:37:01 +0000 (17:37 -0700)
atom/browser/mac/atom_application_delegate.mm

index 7662162..33aa47c 100644 (file)
   return flag;
 }
 
+-  (BOOL)application:(NSApplication *)sender
+continueUserActivity:(NSUserActivity *)userActivity
+  restorationHandler:(void (^)(NSArray *restorableObjects))restorationHandler {
+  std::string activity_type(base::SysNSStringToUTF8(userActivity.activityType));
+  
+  std::map<std::string, std::string> user_info;
+  
+  NSArray* keys = [userActivity.userInfo allKeys];
+  for (NSString* key in keys)
+  {
+    NSString* value = [userActivity.userInfo objectForKey:key];
+    std::string key_str(base::SysNSStringToUTF8(key));
+    std::string value_str(base::SysNSStringToUTF8(value));
+    user_info[key_str] = value_str;
+  }
+
+  atom::Browser* browser = atom::Browser::Get();
+  return browser->ContinueUserActivity(activity_type, user_info) ? YES : NO;
+}
+
 @end