diff --git a/publish/changeLog.md b/publish/changeLog.md index 26c37c37..858e0635 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -11,6 +11,7 @@ - 修复若配置了`http_proxy`环境变量时,会意外使用此代理配置的问题 - 修复多选后切换列表后不会清空多选内容的问题 +- 修复设置快捷键时的处理逻辑问题 ### 文档 diff --git a/src/renderer/event/index.js b/src/renderer/event/index.js index 108105b5..af43ef9d 100644 --- a/src/renderer/event/index.js +++ b/src/renderer/event/index.js @@ -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 // 软件内快捷键的最小化触发时 diff --git a/src/renderer/utils/keyBind.js b/src/renderer/utils/keyBind.js index fdea03d8..2489d150 100644 --- a/src/renderer/utils/keyBind.js +++ b/src/renderer/utils/keyBind.js @@ -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() } diff --git a/src/renderer/views/setting/components/SettingHotKey.vue b/src/renderer/views/setting/components/SettingHotKey.vue index 1085e3bc..57a54032 100644 --- a/src/renderer/views/setting/components/SettingHotKey.vue +++ b/src/renderer/views/setting/components/SettingHotKey.vue @@ -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 }) => {