Popover keys now use virtual codes.

This commit is contained in:
2025-01-04 22:18:51 -08:00
parent f52db88391
commit 5ba167fbb6

View File

@@ -43,24 +43,20 @@ class PopoverPanel: NSPanel {
Self.logger.debug("performKeyEquivalent keyCode=\(event.keyCode)") Self.logger.debug("performKeyEquivalent keyCode=\(event.keyCode)")
let commandKey = NSEvent.ModifierFlags.command.rawValue let commandKey = NSEvent.ModifierFlags.command.rawValue
// TODO: Make these depend on virtual keycodes, instead of
// characters.
if event.type == NSEvent.EventType.keyDown { if event.type == NSEvent.EventType.keyDown {
if (event.modifierFlags.rawValue & if (event.modifierFlags.rawValue &
NSEvent.ModifierFlags.deviceIndependentFlagsMask.rawValue) NSEvent.ModifierFlags.deviceIndependentFlagsMask.rawValue)
== commandKey, == commandKey, event.keyCode == 13 // W
event.charactersIgnoringModifiers! == "w"
{ {
resignKey() resignKey()
return true return true
} else if (event.modifierFlags.rawValue & } else if (event.modifierFlags.rawValue &
NSEvent.ModifierFlags.deviceIndependentFlagsMask.rawValue) NSEvent.ModifierFlags.deviceIndependentFlagsMask.rawValue)
== commandKey, == commandKey, event.keyCode == 12 // Q
event.charactersIgnoringModifiers! == "q"
{ {
NSApplication.shared.terminate(self) NSApplication.shared.terminate(self)
return true return true
} else if event.keyCode == 53 { } else if event.keyCode == 53 { // ESC
resignKey() resignKey()
return true return true
} }