fix: restore wasOpenedAtLogin functionality (#42422)

fix: restore opened at login functionality

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
trop[bot] 2024-06-10 11:34:21 -05:00 committed by GitHub
parent 8035effa1a
commit 9ab67cc2f6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 16 additions and 1 deletions

View file

@ -236,6 +236,10 @@ class Browser : public WindowListObserver {
// Set docks' icon.
void DockSetIcon(v8::Isolate* isolate, v8::Local<v8::Value> icon);
void SetLaunchedAtLogin(bool launched_at_login) {
was_launched_at_login_ = launched_at_login;
}
#endif // BUILDFLAG(IS_MAC)
void ShowAboutPanel();
@ -370,6 +374,7 @@ class Browser : public WindowListObserver {
#if BUILDFLAG(IS_MAC)
std::unique_ptr<ui::ScopedPasswordInputEnabler> password_input_enabler_;
base::Time last_dock_show_;
bool was_launched_at_login_;
#endif
base::Value::Dict about_panel_options_;

View file

@ -392,6 +392,7 @@ v8::Local<v8::Value> Browser::GetLoginItemSettings(
platform_util::GetLoginItemEnabled(options.type, options.service_name);
settings.open_at_login =
status == "enabled" || status == "enabled-deprecated";
settings.opened_at_login = was_launched_at_login_;
if (@available(macOS 13, *))
settings.status = status;
#else
@ -405,6 +406,7 @@ v8::Local<v8::Value> Browser::GetLoginItemSettings(
settings = settings_deprecated;
} else {
settings.open_at_login = status == "enabled";
settings.opened_at_login = was_launched_at_login_;
settings.status = status;
}
} else {

View file

@ -84,6 +84,14 @@ static NSDictionary* UNNotificationResponseToNSDictionary(
}
}
NSAppleEventDescriptor* event =
NSAppleEventManager.sharedAppleEventManager.currentAppleEvent;
BOOL launched_as_login_item =
(event.eventID == kAEOpenApplication &&
[event paramDescriptorForKeyword:keyAEPropData].enumCodeValue ==
keyAELaunchedAsLogInItem);
electron::Browser::Get()->SetLaunchedAtLogin(launched_as_login_item);
electron::Browser::Get()->DidFinishLaunching(
electron::NSDictionaryToValue(notification_info));
}