diff --git a/src/AppDelegate.swift b/src/AppDelegate.swift index 9c9486c..6e9c8ab 100644 --- a/src/AppDelegate.swift +++ b/src/AppDelegate.swift @@ -35,8 +35,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate { { HotKeyManager.shared.registerHotKey(key: code, modifiers: mods) } else { - // NOTE: This is the default shortcut. If you want to change - // it, do not forget to change it in other files + // NOTE: This is the default shortcut. If you want to change it, do not forget to change it in other files // (SettingsViewController). HotKeyManager.shared.registerHotKey(key: kVK_Space, modifiers: optionKey) } @@ -79,7 +78,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate { aboutWindow.makeKeyAndOrderFront(nil) } - // NOTE: This function is triggered by DirMonitor. + // NOTE: This function act like a callback is triggered by DirMonitor when file system events occur. public func fsEventTriggered(_ path: String, _ flags: Int) { if containsFlags(key: kFSEventStreamEventFlagItemCreated, in: flags) || containsFlags(key: kFSEventStreamEventFlagItemRemoved, in: flags) || diff --git a/src/PathManager.swift b/src/PathManager.swift index 390bb61..c36ff2b 100644 --- a/src/PathManager.swift +++ b/src/PathManager.swift @@ -133,4 +133,11 @@ final class PathManager { } refreshFilesystemWatchers() } + + // Touch paths to load them into CPUs cache. + public func touchPaths() { + for path in paths { + _ = path + } + } } diff --git a/src/SearchViewController.swift b/src/SearchViewController.swift index 2a16d47..4fa8ae4 100644 --- a/src/SearchViewController.swift +++ b/src/SearchViewController.swift @@ -149,7 +149,7 @@ class SearchViewController: NSViewController, NSTextFieldDelegate, NSPopoverDele backgroundView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor), backgroundView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor), - searchInput.widthAnchor.constraint(equalToConstant: 350), + searchInput.widthAnchor.constraint(equalToConstant: 400), searchInput.topAnchor.constraint(equalTo: contentView.topAnchor, constant: ViewConstants.spacing10), searchInput.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: ViewConstants.spacing15), @@ -197,8 +197,8 @@ class SearchViewController: NSViewController, NSTextFieldDelegate, NSPopoverDele } let select = controller.programsTableViewSelection - self?.programsTableView.selectRowIndexes(IndexSet(integer: select), byExtendingSelection: false) - self?.programsTableView.scrollRowToVisible(select) + self?.programsTableView.selectRowIndexes(IndexSet(integer: select), byExtendingSelection: false) + self?.programsTableView.scrollRowToVisible(select) } return event @@ -228,8 +228,13 @@ class SearchViewController: NSViewController, NSTextFieldDelegate, NSPopoverDele view.window?.makeFirstResponder(searchInput) // searchInput should select all text whenever window appears. - NSApp.sendAction(#selector(NSResponder.selectAll(_:)), - to: nil, from: self) + NSApp.sendAction(#selector(NSResponder.selectAll(_:)), to: nil, from: self) + } + + override func viewWillAppear() { + super.viewWillAppear() + + PathManager.shared.touchPaths() } override func viewDidDisappear() { diff --git a/src/SettingsViewController.swift b/src/SettingsViewController.swift index 1e6619b..9c8912a 100644 --- a/src/SettingsViewController.swift +++ b/src/SettingsViewController.swift @@ -317,8 +317,7 @@ class SettingsViewController: NSViewController, override func viewWillDisappear() { super.viewWillDisappear() - HotKeyManager.shared.registerHotKey(key: keyCode, - modifiers: modifiers) + HotKeyManager.shared.registerHotKey(key: keyCode, modifiers: modifiers) UserDefaults.standard.set(keyCode, forKey: "keyCode") UserDefaults.standard.set(modifiers, forKey: "keyModifiers")