修复设置快捷键时的处理逻辑问题

pull/930/merge
lyswhut 2022-06-11 18:52:52 +08:00
parent bb8509a21c
commit 0704a4ad12
4 changed files with 61 additions and 56 deletions

View File

@ -11,6 +11,7 @@
- 修复若配置了`http_proxy`环境变量时,会意外使用此代理配置的问题
- 修复多选后切换列表后不会清空多选内容的问题
- 修复设置快捷键时的处理逻辑问题
### 文档

View File

@ -24,8 +24,10 @@ eventHub.on(baseName.bindKey, () => {
// console.log(`key_${key}_${type}`)
eventHub.emit(baseName.key_down, { event, keys, key, type })
// console.log(event, key)
if (!window.isEditingHotKey && appHotKeyConfig.local.enable && appHotKeyConfig.local.keys[key]) {
event.preventDefault()
// console.log(key, eventKey, type, event, keys)
if (window.isEditingHotKey) return
if (appHotKeyConfig.local.enable && appHotKeyConfig.local.keys[key]) {
event?.preventDefault()
if (type == 'up') return
// 软件内快捷键的最小化触发时

View File

@ -107,7 +107,7 @@ const unbindKey = () => {
const clearDownKeys = () => {
let keys = Array.from(downKeys)
for (let i = keys.length - 1; i > -1; i--) {
handleSendEvent(keys[i], 'up')
handleSendEvent(keys[i], keys[i], 'up', null, [keys[i]])
}
downKeys.clear()
}

View File

@ -102,65 +102,67 @@ export default {
})
}
const handleHotKeyBlur = async(event, info, type) => {
await hotKeySetEnable(true)
window.isEditingHotKey = false
isEditHotKey = false
const prevInput = hotKeyTargetInput
hotKeyTargetInput = null
if (prevInput.value == t('setting__hot_key_tip_input')) {
prevInput.value = newHotKey ? formatHotKeyName(newHotKey) : ''
return
}
let config = hotKeyConfig.value[type][info.name]
let originKey
if (type == 'global' && newHotKey && current_hot_key.value.global.enable) {
try {
await hotKeySetConfig({
action: 'register',
data: {
key: newHotKey,
info,
},
})
} catch (error) {
console.log(error)
const handleHotKeyBlur = (event, info, type) => {
setTimeout(async() => {
await hotKeySetEnable(true)
window.isEditingHotKey = false
isEditHotKey = false
const prevInput = hotKeyTargetInput
hotKeyTargetInput = null
if (prevInput?.value == t('setting__hot_key_tip_input')) {
prevInput.value = newHotKey ? formatHotKeyName(newHotKey) : ''
return
}
}
if (config) {
if (config.key == newHotKey) return
originKey = config.key
delete current_hot_key.value[type].keys[config.key]
} else if (!newHotKey) return
if (newHotKey) {
for (const [tempType, tempInfo] of Object.entries(current_hot_key.value)) {
if (tempType == type) continue
config = tempInfo.keys[newHotKey]
if (config) {
console.log(newHotKey, info, config, info.name, config.name)
delete current_hot_key.value[tempType].keys[newHotKey]
break
let config = hotKeyConfig.value[type][info.name]
let originKey
if (type == 'global' && newHotKey && current_hot_key.value.global.enable) {
try {
await hotKeySetConfig({
action: 'register',
data: {
key: newHotKey,
info,
},
})
} catch (error) {
console.log(error)
return
}
}
current_hot_key.value[type].keys[newHotKey] = info
}
if (config) {
if (config.key == newHotKey) return
originKey = config.key
delete current_hot_key.value[type].keys[config.key]
} else if (!newHotKey) return
initHotKeyConfig()
// console.log(this.current_hot_key.global.keys)
if (originKey && current_hot_key.value.global.enable) {
try {
await hotKeySetConfig({
action: 'unregister',
data: originKey,
})
} catch (error) {
console.log(error)
if (newHotKey) {
for (const [tempType, tempInfo] of Object.entries(current_hot_key.value)) {
if (tempType == type) continue
config = tempInfo.keys[newHotKey]
if (config) {
console.log(newHotKey, info, config, info.name, config.name)
delete current_hot_key.value[tempType].keys[newHotKey]
break
}
}
current_hot_key.value[type].keys[newHotKey] = info
}
}
await handleHotKeySaveConfig()
await getHotKeyStatus()
initHotKeyConfig()
// console.log(this.current_hot_key.global.keys)
if (originKey && current_hot_key.value.global.enable) {
try {
await hotKeySetConfig({
action: 'unregister',
data: originKey,
})
} catch (error) {
console.log(error)
}
}
await handleHotKeySaveConfig()
await getHotKeyStatus()
})
}
const handleKeyDown = ({ event, keys, key, type }) => {