Browse Source

fix: `user-did-{resign|become}-active` events on macOS (#41528)

fix: user-did-{resign|become}-active events on macOS

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <[email protected]>
trop[bot] 1 year ago
parent
commit
333ee6d51a
1 changed files with 29 additions and 25 deletions
  1. 29 25
      shell/browser/api/electron_api_power_monitor_mac.mm

+ 29 - 25
shell/browser/api/electron_api_power_monitor_mac.mm

@@ -22,41 +22,45 @@
 
 - (id)init {
   if ((self = [super init])) {
-    NSDistributedNotificationCenter* distCenter =
+    NSDistributedNotificationCenter* distributed_center =
         [NSDistributedNotificationCenter defaultCenter];
     // A notification that the screen was locked.
-    [distCenter addObserver:self
-                   selector:@selector(onScreenLocked:)
-                       name:@"com.apple.screenIsLocked"
-                     object:nil];
+    [distributed_center addObserver:self
+                           selector:@selector(onScreenLocked:)
+                               name:@"com.apple.screenIsLocked"
+                             object:nil];
     // A notification that the screen was unlocked by the user.
-    [distCenter addObserver:self
-                   selector:@selector(onScreenUnlocked:)
-                       name:@"com.apple.screenIsUnlocked"
-                     object:nil];
+    [distributed_center addObserver:self
+                           selector:@selector(onScreenUnlocked:)
+                               name:@"com.apple.screenIsUnlocked"
+                             object:nil];
     // A notification that the workspace posts before the machine goes to sleep.
-    [distCenter addObserver:self
-                   selector:@selector(isSuspending:)
-                       name:NSWorkspaceWillSleepNotification
-                     object:nil];
+    [distributed_center addObserver:self
+                           selector:@selector(isSuspending:)
+                               name:NSWorkspaceWillSleepNotification
+                             object:nil];
     // A notification that the workspace posts when the machine wakes from
     // sleep.
-    [distCenter addObserver:self
-                   selector:@selector(isResuming:)
-                       name:NSWorkspaceDidWakeNotification
-                     object:nil];
+    [distributed_center addObserver:self
+                           selector:@selector(isResuming:)
+                               name:NSWorkspaceDidWakeNotification
+                             object:nil];
+
+    NSNotificationCenter* shared_center =
+        [[NSWorkspace sharedWorkspace] notificationCenter];
+
     // A notification that the workspace posts when the user session becomes
     // active.
-    [distCenter addObserver:self
-                   selector:@selector(onUserDidBecomeActive:)
-                       name:NSWorkspaceSessionDidBecomeActiveNotification
-                     object:nil];
+    [shared_center addObserver:self
+                      selector:@selector(onUserDidBecomeActive:)
+                          name:NSWorkspaceSessionDidBecomeActiveNotification
+                        object:nil];
     // A notification that the workspace posts when the user session becomes
     // inactive.
-    [distCenter addObserver:self
-                   selector:@selector(onUserDidResignActive:)
-                       name:NSWorkspaceSessionDidResignActiveNotification
-                     object:nil];
+    [shared_center addObserver:self
+                      selector:@selector(onUserDidResignActive:)
+                          name:NSWorkspaceSessionDidResignActiveNotification
+                        object:nil];
   }
   return self;
 }