-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
发生了什么?
问题描述
单击选中节点或线路,如果节点或线路不是处于最顶层,就无法删除,需要第二次对节点或线路进行点击,再按删除才可以删除。
目前的排查进展
核心库用了mousetrap作为事件处理库,当初始化mousetrap的时候,mousetrap会默认对document元素进行一个事件绑定,核心库则对画布进行事件绑定。
第一次单击元素的时候,按删除按钮会触发mousetrap对document元素的事件系统,第二次单击元素,再按删除按钮才会触发对画布的事件系统。所以应该是第一次单击的时候画布失去焦点了。
第一次单击元素,会触发元素的setZIndex方法,会暂时将元素置顶,主要问题就是出现在置顶这一步,改变了zIndex会触发重新渲染,这个过程怎么使得画布失去焦点了,目前还没有什么头绪。
目前的折中解决方案
我在mousetrap对document的事件实例中也绑定了删除按钮,这样即使画布的事件系统不触发也能正常删除
期望
基于目前的情况有没有大佬可以分析出问题所在,或者讨论一下有什么头绪。
复现demo
logicflow/core版本
2.1.4
logicflow/extension版本
无
logicflow/engine版本
No response
浏览器&环境
No response
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working