feat: add did-resign-active event on app (#37933)

feat: add did-resign-active event on app
This commit is contained in:
Shelley Vohr 2023-04-18 16:53:39 +02:00 committed by GitHub
parent f4b172b9ec
commit 32afdda9ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 34 additions and 4 deletions

View file

@ -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(

View file

@ -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:

View file

@ -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

View file

@ -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 doesnt have focus.
void DidResignActive();
#endif // BUILDFLAG(IS_MAC)
// Tell the application that application is activated with visible/invisible

View file

@ -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:

View file

@ -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];