优化:只有当鼠标在画布内才响应快捷键
This commit is contained in:
parent
c94f459ff9
commit
983e55bd1d
@ -35,6 +35,8 @@ class Event extends EventEmitter {
|
|||||||
this.onContextmenu = this.onContextmenu.bind(this)
|
this.onContextmenu = this.onContextmenu.bind(this)
|
||||||
this.onSvgMousedown = this.onSvgMousedown.bind(this)
|
this.onSvgMousedown = this.onSvgMousedown.bind(this)
|
||||||
this.onKeyup = this.onKeyup.bind(this)
|
this.onKeyup = this.onKeyup.bind(this)
|
||||||
|
this.onMouseenter = this.onMouseenter.bind(this)
|
||||||
|
this.onMouseleave = this.onMouseleave.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 绑定事件
|
// 绑定事件
|
||||||
@ -46,6 +48,8 @@ class Event extends EventEmitter {
|
|||||||
window.addEventListener('mouseup', this.onMouseup)
|
window.addEventListener('mouseup', this.onMouseup)
|
||||||
this.mindMap.el.addEventListener('wheel', this.onMousewheel)
|
this.mindMap.el.addEventListener('wheel', this.onMousewheel)
|
||||||
this.mindMap.svg.on('contextmenu', this.onContextmenu)
|
this.mindMap.svg.on('contextmenu', this.onContextmenu)
|
||||||
|
this.mindMap.svg.on('mouseenter', this.onMouseenter)
|
||||||
|
this.mindMap.svg.on('mouseleave', this.onMouseleave)
|
||||||
window.addEventListener('keyup', this.onKeyup)
|
window.addEventListener('keyup', this.onKeyup)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,6 +61,8 @@ class Event extends EventEmitter {
|
|||||||
window.removeEventListener('mouseup', this.onMouseup)
|
window.removeEventListener('mouseup', this.onMouseup)
|
||||||
this.mindMap.el.removeEventListener('wheel', this.onMousewheel)
|
this.mindMap.el.removeEventListener('wheel', this.onMousewheel)
|
||||||
this.mindMap.svg.off('contextmenu', this.onContextmenu)
|
this.mindMap.svg.off('contextmenu', this.onContextmenu)
|
||||||
|
this.mindMap.svg.off('mouseenter', this.onMouseenter)
|
||||||
|
this.mindMap.svg.off('mouseleave', this.onMouseleave)
|
||||||
window.removeEventListener('keyup', this.onKeyup)
|
window.removeEventListener('keyup', this.onKeyup)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,6 +136,16 @@ class Event extends EventEmitter {
|
|||||||
onKeyup(e) {
|
onKeyup(e) {
|
||||||
this.emit('keyup', e)
|
this.emit('keyup', e)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 进入
|
||||||
|
onMouseenter(e) {
|
||||||
|
this.emit('svg_mouseenter', e)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 离开
|
||||||
|
onMouseleave(e) {
|
||||||
|
this.emit('svg_mouseleave', e)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Event
|
export default Event
|
||||||
|
|||||||
@ -10,6 +10,7 @@ export default class KeyCommand {
|
|||||||
}
|
}
|
||||||
this.shortcutMapCache = {}
|
this.shortcutMapCache = {}
|
||||||
this.isPause = false
|
this.isPause = false
|
||||||
|
this.isInSvg = false
|
||||||
this.bindEvent()
|
this.bindEvent()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,8 +38,21 @@ export default class KeyCommand {
|
|||||||
|
|
||||||
// 绑定事件
|
// 绑定事件
|
||||||
bindEvent() {
|
bindEvent() {
|
||||||
|
// 只有当鼠标在画布内才响应快捷键
|
||||||
|
this.mindMap.on('svg_mouseenter', () => {
|
||||||
|
this.isInSvg = true
|
||||||
|
})
|
||||||
|
this.mindMap.on('svg_mouseleave', () => {
|
||||||
|
if (this.mindMap.richText && this.mindMap.richText.showTextEdit) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.mindMap.renderer.textEdit.showTextEdit) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.isInSvg = false
|
||||||
|
})
|
||||||
window.addEventListener('keydown', e => {
|
window.addEventListener('keydown', e => {
|
||||||
if (this.isPause) {
|
if (this.isPause || !this.isInSvg) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
Object.keys(this.shortcutMap).forEach(key => {
|
Object.keys(this.shortcutMap).forEach(key => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user