WIP: preview from empty search with space

This commit is contained in:
Akshay Kolli
2026-06-30 04:20:46 -07:00
parent bc7be9ea59
commit 1ceb3c5a4e
5 changed files with 43 additions and 14 deletions

View File

@@ -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 }

View File

@@ -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
}