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

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

View File

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

View File

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

View File

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