修复在新建歌单输入框、歌单内歌曲搜索输入框会意外触发设置的全局快捷键的问题(#879)
parent
0704a4ad12
commit
9d08f91079
|
@ -12,6 +12,7 @@
|
|||
- 修复若配置了`http_proxy`环境变量时,会意外使用此代理配置的问题
|
||||
- 修复多选后切换列表后不会清空多选内容的问题
|
||||
- 修复设置快捷键时的处理逻辑问题
|
||||
- 修复在新建歌单输入框、歌单内歌曲搜索输入框会意外触发设置的全局快捷键的问题(#879)
|
||||
|
||||
### 文档
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42 42" space="preserve">
|
||||
<use xlink:href="#icon-addTo"></use>
|
||||
</svg>
|
||||
<input class="key-bind" :class="$style.newListInput" :value="newListName" type="text" :placeholder="$t('lists__new_list_input')" @keyup.enter="handleSaveList($event)" @blur="handleSaveList($event)"/>
|
||||
<input :class="$style.newListInput" :value="newListName" type="text" :placeholder="$t('lists__new_list_input')" @keyup.enter="handleSaveList($event)" @blur="handleSaveList($event)"/>
|
||||
</base-btn>
|
||||
<span :class="$style.btn" :key="i" v-for="i in spaceNum"></span>
|
||||
</div>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42 42" space="preserve">
|
||||
<use xlink:href="#icon-addTo"></use>
|
||||
</svg>
|
||||
<input class="key-bind" :class="$style.newListInput" :value="newListName" type="text" :placeholder="$t('lists__new_list_input')" @keyup.enter="handleSaveList($event)" @blur="handleSaveList($event)"/>
|
||||
<input :class="$style.newListInput" :value="newListName" type="text" :placeholder="$t('lists__new_list_input')" @keyup.enter="handleSaveList($event)" @blur="handleSaveList($event)"/>
|
||||
</base-btn>
|
||||
<span :class="$style.btn" :key="i" v-for="i in spaceNum"></span>
|
||||
</div>
|
||||
|
|
|
@ -12,8 +12,9 @@ import {
|
|||
useRefGetter,
|
||||
} from '@renderer/utils/vueTools'
|
||||
|
||||
const handle_key_esc_down = ({ event }) => {
|
||||
if (event.repeat) return
|
||||
const handle_key_down = ({ event, type, key }) => {
|
||||
// console.log(key)
|
||||
if (key != 'escape' || !event || event.repeat || type == 'up' || window.isEditingHotKey) return
|
||||
if (event.target.tagName != 'INPUT' || event.target.classList.contains('ignore-esc')) {
|
||||
if (isFullscreen.value) {
|
||||
event.lx_handled = true
|
||||
|
@ -113,7 +114,7 @@ export default ({
|
|||
})
|
||||
|
||||
window.eventHub.emit(eventBaseName.bindKey)
|
||||
window.eventHub.on('key_escape_down', handle_key_esc_down)
|
||||
window.eventHub.on(eventBaseName.key_down, handle_key_down)
|
||||
window.eventHub.on('key_mod+f12_down', handle_open_devtools)
|
||||
window.eventHub.on('key_f11_down', handle_fullscreen)
|
||||
window.eventHub.on(eventBaseName.fullscreenToggle, handle_fullscreen)
|
||||
|
@ -128,7 +129,7 @@ export default ({
|
|||
}
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
window.eventHub.off('key_escape_down', handle_key_esc_down)
|
||||
window.eventHub.off(eventBaseName.key_down, handle_key_down)
|
||||
window.eventHub.off('key_mod+f12_down', handle_open_devtools)
|
||||
window.eventHub.off('key_f11_down', handle_fullscreen)
|
||||
window.eventHub.off(eventBaseName.fullscreenToggle, handle_fullscreen)
|
||||
|
|
|
@ -20,14 +20,15 @@ rendererInvoke(NAMES.mainWindow.get_hot_key).then(({ local, global }) => {
|
|||
})
|
||||
|
||||
eventHub.on(baseName.bindKey, () => {
|
||||
keyBind.bindKey((key, eventKey, type, event, keys) => {
|
||||
keyBind.bindKey((key, eventKey, type, event, keys, isEditing) => {
|
||||
// console.log(`key_${key}_${type}`)
|
||||
eventHub.emit(baseName.key_down, { event, keys, key, type })
|
||||
// console.log(event, key)
|
||||
// console.log(key, eventKey, type, event, keys)
|
||||
if (window.isEditingHotKey) return
|
||||
if (appHotKeyConfig.local.enable && appHotKeyConfig.local.keys[key]) {
|
||||
event?.preventDefault()
|
||||
if (window.isEditingHotKey || (isEditing && type == 'down') || event?.lx_handled) return
|
||||
if (event && appHotKeyConfig.local.enable && appHotKeyConfig.local.keys[key] && (key != 'escape' || !event.target.classList.contains('ignore-esc'))) {
|
||||
// console.log(key, eventKey, type, keys, isEditing)
|
||||
event.preventDefault()
|
||||
if (type == 'up') return
|
||||
|
||||
// 软件内快捷键的最小化触发时
|
||||
|
@ -40,6 +41,7 @@ eventHub.on(baseName.bindKey, () => {
|
|||
eventHub.emit(appHotKeyConfig.local.keys[key].action)
|
||||
return
|
||||
}
|
||||
// console.log(`key_${key}_${type}`)
|
||||
eventHub.emit(`key_${key}_${type}`, { event, keys, key, eventKey, type })
|
||||
if (key != eventKey) eventHub.emit(`key_${eventKey}_${type}`, { event, keys, key, eventKey, type })
|
||||
})
|
||||
|
|
|
@ -2,7 +2,7 @@ import { isMac } from '../../common/utils'
|
|||
|
||||
const downKeys = new Set()
|
||||
|
||||
const handleEvent = (type, event, keys) => {
|
||||
const handleEvent = (type, event, keys, isEditing) => {
|
||||
let eventKey = event.key
|
||||
if (isMac) {
|
||||
let index = keys.indexOf('meta')
|
||||
|
@ -23,7 +23,7 @@ const handleEvent = (type, event, keys) => {
|
|||
downKeys.delete(key)
|
||||
break
|
||||
}
|
||||
handleSendEvent(key, eventKey, type, event, keys)
|
||||
handleSendEvent(key, eventKey, type, event, keys, isEditing)
|
||||
}
|
||||
|
||||
// 修饰键处理
|
||||
|
@ -54,7 +54,7 @@ const assertStopCallback = element => {
|
|||
}
|
||||
|
||||
const handleKeyDown = event => {
|
||||
if (assertStopCallback(event.target)) return
|
||||
// if (assertStopCallback(event.target)) return
|
||||
// event.preventDefault()
|
||||
let keys = eventModifiers(event)
|
||||
switch (event.key) {
|
||||
|
@ -70,11 +70,11 @@ const handleKeyDown = event => {
|
|||
keys.push((event.code.includes('Numpad') ? event.code.replace(/^Numpad(\w{1,3})\w*$/i, 'num$1') : event.key).toLowerCase())
|
||||
break
|
||||
}
|
||||
handleEvent('down', event, keys)
|
||||
handleEvent('down', event, keys, assertStopCallback(event.target))
|
||||
}
|
||||
|
||||
const handleKeyUp = event => {
|
||||
if (assertStopCallback(event.target)) return
|
||||
// if (assertStopCallback(event.target)) return
|
||||
event.preventDefault()
|
||||
let keys = eventModifiers(event)
|
||||
switch (event.key) {
|
||||
|
@ -88,7 +88,7 @@ const handleKeyUp = event => {
|
|||
keys.push((event.code.includes('Numpad') ? event.code.replace(/^Numpad(\w{1,3})\w*$/i, 'num$1') : event.key).toLowerCase())
|
||||
break
|
||||
}
|
||||
handleEvent('up', event, keys)
|
||||
handleEvent('up', event, keys, assertStopCallback(event.target))
|
||||
}
|
||||
|
||||
let handleSendEvent
|
||||
|
|
|
@ -30,12 +30,12 @@
|
|||
@contextmenu="handleListsItemRigthClick($event, index)" :aria-label="item.name" v-for="(item, index) in userLists" :key="item.id" :aria-selected="defaultList.id == listId"
|
||||
>
|
||||
<span :class="$style.listsLabel" @click="handleListToggle(item.id, index + 2)">{{item.name}}</span>
|
||||
<input class="key-bind" :class="$style.listsInput" @contextmenu.stop type="text"
|
||||
<input :class="$style.listsInput" @contextmenu.stop type="text"
|
||||
@keyup.enter="handleListsSave(index, $event)" @blur="handleListsSave(index, $event)" :value="item.name" :placeholder="item.name"/>
|
||||
</li>
|
||||
<transition enter-active-class="animated-fast slideInLeft" leave-active-class="animated-fast fadeOut" @after-leave="handleListsNewAfterLeave" @after-enter="$refs.dom_listsNewInput.focus()">
|
||||
<li :class="[$style.listsItem, $style.listsNew, listsData.isNewLeave ? $style.newLeave : null]" v-if="listsData.isShowNewList">
|
||||
<input class="key-bind" :class="$style.listsInput" @contextmenu.stop ref="dom_listsNewInput" type="text" @keyup.enter="handleListsCreate"
|
||||
<input :class="$style.listsInput" @contextmenu.stop ref="dom_listsNewInput" type="text" @keyup.enter="handleListsCreate"
|
||||
@blur="handleListsCreate" :placeholder="$t('lists__new_list_input')"/>
|
||||
</li>
|
||||
</transition>
|
||||
|
|
|
@ -4,7 +4,7 @@ teleport(to="#view")
|
|||
transition(enter-active-class="animated-fast zoomIn" leave-active-class="animated zoomOut" @after-leave="handleAnimated")
|
||||
div(:class="$style.search" v-show="visible")
|
||||
div(:class="$style.form")
|
||||
input.key-bind.ignore-esc(:placeholder="placeholder" v-model.trim="text" ref="dom_input"
|
||||
input.ignore-esc(:placeholder="placeholder" v-model.trim="text" ref="dom_input"
|
||||
@input="handleDelaySearch"
|
||||
@keyup.enter="handleTemplistClick(selectIndex)"
|
||||
@keyup.arrow-down.prevent="handleKeyDown"
|
||||
|
|
|
@ -7,7 +7,7 @@ dd
|
|||
div(:class="$style.hotKeyContainer" :style="{ opacity: current_hot_key.local.enable ? 1 : .6 }")
|
||||
div(:class="$style.hotKeyItem" v-for="item in allHotKeys.local")
|
||||
h4(:class="$style.hotKeyItemTitle") {{$t('setting__hot_key_' + item.name)}}
|
||||
base-input.key-bind(:class="$style.hotKeyItemInput" readonly @keyup.prevent :placeholder="$t('setting__hot_key_unset_input')"
|
||||
base-input(:class="$style.hotKeyItemInput" readonly @keyup.prevent :placeholder="$t('setting__hot_key_unset_input')"
|
||||
:value="hotKeyConfig.local[item.name] && formatHotKeyName(hotKeyConfig.local[item.name].key)"
|
||||
@focus="handleHotKeyFocus($event, item, 'local')"
|
||||
@blur="handleHotKeyBlur($event, item, 'local')")
|
||||
|
@ -18,7 +18,7 @@ dd
|
|||
div(:class="$style.hotKeyContainer" :style="{ opacity: current_hot_key.global.enable ? 1 : .6 }")
|
||||
div(:class="$style.hotKeyItem" v-for="item in allHotKeys.global")
|
||||
h4(:class="$style.hotKeyItemTitle") {{$t('setting__hot_key_' + item.name)}}
|
||||
base-input.key-bind(:class="[$style.hotKeyItemInput, hotKeyConfig.global[item.name] && hotKeyStatus[hotKeyConfig.global[item.name].key] && hotKeyStatus[hotKeyConfig.global[item.name].key].status === false ? $style.hotKeyFailed : null]"
|
||||
base-input(:class="[$style.hotKeyItemInput, hotKeyConfig.global[item.name] && hotKeyStatus[hotKeyConfig.global[item.name].key] && hotKeyStatus[hotKeyConfig.global[item.name].key].status === false ? $style.hotKeyFailed : null]"
|
||||
:value="hotKeyConfig.global[item.name] && formatHotKeyName(hotKeyConfig.global[item.name].key)" @input.prevent readonly :placeholder="$t('setting__hot_key_unset_input')"
|
||||
@focus="handleHotKeyFocus($event, item, 'global')"
|
||||
@blur="handleHotKeyBlur($event, item, 'global')")
|
||||
|
|
Loading…
Reference in New Issue