Browse Source

Revert "fix: trigger activate event when app is activated via app switcher (#23775)" (#23822)

This reverts commit 3a568ab070b97d1fac81403c2d342b88430604cf.
Cheng Zhao 4 years ago
parent
commit
60bdb56673
1 changed files with 5 additions and 34 deletions
  1. 5 34
      shell/browser/mac/atom_application_delegate.mm

+ 5 - 34
shell/browser/mac/atom_application_delegate.mm

@@ -40,10 +40,7 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
 @end
 #endif  // BUILDFLAG(USE_ALLOCATOR_SHIM)
 
-@implementation AtomApplicationDelegate {
- @private
-  bool isFirstActivation_;
-}
+@implementation AtomApplicationDelegate
 
 - (void)setApplicationDockMenu:(electron::AtomMenuModel*)model {
   menu_controller_.reset([[AtomMenuController alloc] initWithModel:model
@@ -80,8 +77,6 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
         @selector(_coreAttributesFromRange:whichAttributes:completionHandler:));
   }
 #endif
-
-  isFirstActivation_ = true;
 }
 
 - (NSMenu*)applicationDockMenu:(NSApplication*)sender {
@@ -96,35 +91,11 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
   return electron::Browser::Get()->OpenFile(filename_str) ? YES : NO;
 }
 
-- (void)applicationDidBecomeActive:(NSNotification*)notify {
-  // Originally `applicationShouldHandleReopen:hasVisibleWindows:` was used to
-  // emit Activate event. But the message is sent only when application is
-  // activated via Dock or Finder ignoring the App Switcher (cmd+tab).
-  //
-  // Using `applicationDidBecomeActive' is more reliable but to maintain
-  // compatibility with previous implementation we ignore activation
-  // immediately after the application launch, and compute the
-  // hasVisibleWindows on our own.
-  //
-  // Details in https://github.com/electron/electron/pull/23727.
-
-  if (isFirstActivation_) {
-    isFirstActivation_ = false;
-    return;
-  }
-
-  NSApplication* app = notify.object;
-  bool hasVisibleWindows = false;
-
-  for (NSWindow* win in app.windows) {
-    if (win.isVisible || win.miniaturized) {
-      hasVisibleWindows = true;
-      break;
-    }
-  }
-
+- (BOOL)applicationShouldHandleReopen:(NSApplication*)theApplication
+                    hasVisibleWindows:(BOOL)flag {
   electron::Browser* browser = electron::Browser::Get();
-  browser->Activate(hasVisibleWindows);
+  browser->Activate(static_cast<bool>(flag));
+  return flag;
 }
 
 - (BOOL)application:(NSApplication*)sender