Crash Fix: Change how default shortcuts are stored

It turns out that initializing NSUserDefaultsController like this is a
really bad idea, especially on older versions of macOS. This is probably
also why the equalizer was crashing for people on first activation.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
This commit is contained in:
Christopher Snowhill 2025-03-07 04:39:44 -08:00
parent d19c2f1e95
commit 694de375ea

View file

@ -734,7 +734,7 @@ MASShortcut *shortcutWithMigration(NSString *oldKeyCodePrefName,
} }
} }
static NSUserDefaultsController *shortcutDefaultsController = nil; static NSDictionary *shortcutDefaults = nil;
- (void)registerDefaultHotKeys { - (void)registerDefaultHotKeys {
MASShortcut *playShortcut = shortcutWithMigration(@"hotKeyPlayKeyCode", MASShortcut *playShortcut = shortcutWithMigration(@"hotKeyPlayKeyCode",
@ -777,11 +777,15 @@ static NSUserDefaultsController *shortcutDefaultsController = nil;
CogSeekForwardShortcutKey: seekFwdShortcutData CogSeekForwardShortcutKey: seekFwdShortcutData
}; };
shortcutDefaultsController = [[NSUserDefaultsController sharedUserDefaultsController] initWithDefaults:nil initialValues:defaultShortcuts]; shortcutDefaults = defaultShortcuts;
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultShortcuts];
} }
- (IBAction)resetHotkeys:(id)sender { - (IBAction)resetHotkeys:(id)sender {
[shortcutDefaultsController revertToInitialValues:sender]; [shortcutDefaults enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
[[NSUserDefaults standardUserDefaults] setObject:obj forKey:key];
}];
} }
- (void)registerHotKeys { - (void)registerHotKeys {