Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from p0deje:master #87

Merged
merged 9 commits into from
Jan 23, 2025
Prev Previous commit
Handle shortcuts on Dvorak - QWERTY ⌘ layout
This is regression in Maccy 2.0
  • Loading branch information
p0deje committed Jan 23, 2025
commit 35e3de0dd6714267265e0eb22b8318c1f8c4559b
26 changes: 18 additions & 8 deletions Maccy/KeyChord.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,28 @@ enum KeyChord: CaseIterable {
case unknown

init(_ event: NSEvent?) {
guard let event, event.type == .keyDown,
let key = Sauce.shared.key(for: Int(event.keyCode)) else {
guard let event, event.type == .keyDown else {
self = .unknown
return
}

self.init(
key,
event.modifierFlags
.intersection(.deviceIndependentFlagsMask)
.subtracting([.capsLock, .numericPad, .function])
)
let modifierFlags = event.modifierFlags
.intersection(.deviceIndependentFlagsMask)
.subtracting([.capsLock, .numericPad, .function])
var key: Key?

if KeyboardLayout.current.commandSwitchesToQWERTY, modifierFlags.contains(.command) {
key = Key(QWERTYKeyCode: Int(event.keyCode))
} else {
key = Sauce.shared.key(for: Int(event.keyCode))
}

guard let key else {
self = .unknown
return
}

self.init(key, modifierFlags)
}

init(_ key: Key, _ modifierFlags: NSEvent.ModifierFlags) { // swiftlint:disable:this cyclomatic_complexity
Expand Down