diff --git a/src/logic/Preferences.swift b/src/logic/Preferences.swift index 477a0086..927d07cc 100644 --- a/src/logic/Preferences.swift +++ b/src/logic/Preferences.swift @@ -124,6 +124,21 @@ class Preferences { static var highlightBackgroundColor: NSColor { theme.themeParameters.highlightBackgroundColor } static var font: NSFont { NSFont.systemFont(ofSize: fontHeight) } + static func initialize() { + removeCorruptedPreferences() + migratePreferences() + registerDefaults() + } + + static func removeCorruptedPreferences() { + // from v5.1.0+, there are crash reports of users somehow having their hold shortcuts set to "" + ["holdShortcut", "holdShortcut2"].forEach { + if let s = defaults.string(forKey: $0), s == "" { + defaults.removeObject(forKey: $0) + } + } + } + static func registerDefaults() { defaults.register(defaults: defaultValues) } diff --git a/src/ui/App.swift b/src/ui/App.swift index 7dc8beb2..8ce520c3 100644 --- a/src/ui/App.swift +++ b/src/ui/App.swift @@ -44,8 +44,7 @@ class App: AppCenterApplication, NSApplicationDelegate { SystemPermissions.ensurePermissionsAreGranted { [weak self] in guard let self = self else { return } BackgroundWork.start() - Preferences.migratePreferences() - Preferences.registerDefaults() + Preferences.initialize() Menubar.initialize() self.loadMainMenuXib() self.thumbnailsPanel = ThumbnailsPanel()