fix: use valid Electron accelerator names for numpad operator keys

This commit is contained in:
zjdndjf
2026-08-13 05:05:51 +08:00
parent c89e21b782
commit f4a4d9b31d
2 changed files with 10 additions and 8 deletions

View File

@@ -294,9 +294,7 @@ async function downloadFile(url, path) {
headers: { 'Content-Type': 'application/octet-stream' }
})
if (!response.ok) {
throw new Error(
`download failed: ${response.status} ${response.statusText} for "${url}"`
)
throw new Error(`download failed: ${response.status} ${response.statusText} for "${url}"`)
}
const buffer = await response.arrayBuffer()
fs.writeFileSync(path, new Uint8Array(buffer))

View File

@@ -196,11 +196,15 @@ const ShortcutInput: React.FC<{
} else if (code.startsWith('Intl')) {
code = code.substring(4)
} else if (code.startsWith('Numpad')) {
if (key.length === 1) {
code = 'Num' + code.substring(6)
} else {
code = key
}
// Electron 加速键表只接受 num0-num9/numdec/numadd/numsub/nummult/numdiv
// 解析时整体转小写,'NumSubtract' 这类驼峰名匹配不上会导致注册失败
if (code === 'NumpadAdd') code = 'numadd'
else if (code === 'NumpadSubtract') code = 'numsub'
else if (code === 'NumpadMultiply') code = 'nummult'
else if (code === 'NumpadDivide') code = 'numdiv'
else if (code === 'NumpadDecimal') code = 'numdec'
else if (key.length === 1) code = 'Num' + code.substring(6)
else code = key
} else if (/F\d+/.test(code)) {
// f1-f12
} else if (keyMap[code] !== undefined) {