WIP: preview from empty search with space
This commit is contained in:
@@ -339,6 +339,16 @@ final class ClipboardPanelController: NSObject, NSWindowDelegate, QLPreviewPanel
|
||||
removeKeyMonitor()
|
||||
keyMonitor = NSEvent.addLocalMonitorForEvents(matching: .keyDown) { [weak self] event in
|
||||
guard let self else { return event }
|
||||
if self.shouldHandlePanelKeyEvent(event, allowSearchFieldEditing: true),
|
||||
self.panelView.isSearchFieldEditing,
|
||||
Self.searchFieldPreviewShortcut(
|
||||
forKeyCode: event.keyCode,
|
||||
modifiers: event.modifierFlags,
|
||||
searchText: self.panelView.searchTextForKeyboardShortcut
|
||||
) {
|
||||
self.previewSelected()
|
||||
return nil
|
||||
}
|
||||
if self.shouldHandlePanelKeyEvent(event, allowSearchFieldEditing: true),
|
||||
let index = Self.quickPasteIndex(forKeyCode: event.keyCode, modifiers: event.modifierFlags) {
|
||||
self.viewModel.pasteItem(at: index)
|
||||
@@ -469,6 +479,11 @@ final class ClipboardPanelController: NSObject, NSWindowDelegate, QLPreviewPanel
|
||||
return collectionShortcuts[keyCode]
|
||||
}
|
||||
|
||||
static func searchFieldPreviewShortcut(forKeyCode keyCode: UInt16, modifiers: NSEvent.ModifierFlags, searchText: String) -> Bool {
|
||||
let relevantModifiers = modifiers.intersection(.deviceIndependentFlagsMask)
|
||||
return keyCode == 49 && relevantModifiers.isEmpty && searchText.clipboardTrimmed.isEmpty
|
||||
}
|
||||
|
||||
static func commandShortcutAction(forKeyCode keyCode: UInt16, modifiers: NSEvent.ModifierFlags) -> ClipboardPanelShortcutAction? {
|
||||
let relevantModifiers = modifiers.intersection(.deviceIndependentFlagsMask)
|
||||
guard relevantModifiers == .command else { return nil }
|
||||
|
||||
@@ -1102,6 +1102,10 @@ final class ClipboardPanelView: NSVisualEffectView, NSSearchFieldDelegate {
|
||||
return false
|
||||
}
|
||||
|
||||
var searchTextForKeyboardShortcut: String {
|
||||
searchField.stringValue
|
||||
}
|
||||
|
||||
override func acceptsFirstMouse(for event: NSEvent?) -> Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user