feat: add did-resign-active
event on app (#37933)
feat: add did-resign-active event on app
This commit is contained in:
parent
f4b172b9ec
commit
32afdda9ee
7 changed files with 34 additions and 4 deletions
|
@ -150,9 +150,20 @@ Returns:
|
|||
|
||||
* `event` Event
|
||||
|
||||
Emitted when mac application become active. Difference from `activate` event is
|
||||
Emitted when the application becomes active. This differs from the `activate` event in
|
||||
that `did-become-active` is emitted every time the app becomes active, not only
|
||||
when Dock icon is clicked or application is re-launched.
|
||||
when Dock icon is clicked or application is re-launched. It is also emitted when a user
|
||||
switches to the app via the macOS App Switcher.
|
||||
|
||||
### Event: 'did-resign-active' _macOS_
|
||||
|
||||
Returns:
|
||||
|
||||
* `event` Event
|
||||
|
||||
Emitted when the app is no longer active and doesn’t have focus. This can be triggered,
|
||||
for example, by clicking on another application or by using the macOS App Switcher to
|
||||
switch to another application.
|
||||
|
||||
### Event: 'continue-activity' _macOS_
|
||||
|
||||
|
|
|
@ -787,6 +787,10 @@ void App::OnNewWindowForTab() {
|
|||
void App::OnDidBecomeActive() {
|
||||
Emit("did-become-active");
|
||||
}
|
||||
|
||||
void App::OnDidResignActive() {
|
||||
Emit("did-resign-active");
|
||||
}
|
||||
#endif
|
||||
|
||||
bool App::CanCreateWindow(
|
||||
|
|
|
@ -116,6 +116,7 @@ class App : public ElectronBrowserClient::Delegate,
|
|||
base::Value::Dict user_info) override;
|
||||
void OnNewWindowForTab() override;
|
||||
void OnDidBecomeActive() override;
|
||||
void OnDidResignActive() override;
|
||||
#endif
|
||||
|
||||
// content::ContentBrowserClient:
|
||||
|
|
|
@ -291,6 +291,11 @@ void Browser::DidBecomeActive() {
|
|||
for (BrowserObserver& observer : observers_)
|
||||
observer.OnDidBecomeActive();
|
||||
}
|
||||
|
||||
void Browser::DidResignActive() {
|
||||
for (BrowserObserver& observer : observers_)
|
||||
observer.OnDidResignActive();
|
||||
}
|
||||
#endif
|
||||
|
||||
} // namespace electron
|
||||
|
|
|
@ -278,8 +278,11 @@ class Browser : public WindowListObserver {
|
|||
// Tell the application to create a new window for a tab.
|
||||
void NewWindowForTab();
|
||||
|
||||
// Tell the application that application did become active
|
||||
// Indicate that the app is now active.
|
||||
void DidBecomeActive();
|
||||
// Indicate that the app is no longer active and doesn’t have focus.
|
||||
void DidResignActive();
|
||||
|
||||
#endif // BUILDFLAG(IS_MAC)
|
||||
|
||||
// Tell the application that application is activated with visible/invisible
|
||||
|
|
|
@ -78,8 +78,10 @@ class BrowserObserver : public base::CheckedObserver {
|
|||
// User clicked the native macOS new tab button. (macOS only)
|
||||
virtual void OnNewWindowForTab() {}
|
||||
|
||||
// Browser did become active.
|
||||
// Browser became active.
|
||||
virtual void OnDidBecomeActive() {}
|
||||
// Browser lost active status.
|
||||
virtual void OnDidResignActive() {}
|
||||
#endif
|
||||
|
||||
protected:
|
||||
|
|
|
@ -92,6 +92,10 @@ static NSDictionary* UNNotificationResponseToNSDictionary(
|
|||
electron::Browser::Get()->DidBecomeActive();
|
||||
}
|
||||
|
||||
- (void)applicationDidResignActive:(NSNotification*)notification {
|
||||
electron::Browser::Get()->DidResignActive();
|
||||
}
|
||||
|
||||
- (NSMenu*)applicationDockMenu:(NSApplication*)sender {
|
||||
if (menu_controller_)
|
||||
return [menu_controller_ menu];
|
||||
|
|
Loading…
Reference in a new issue