Skip to content

[Bug Report]: 单击选中节点或线路,如果节点或线路不是处于最顶层,就无法删除 #2316

@Soundmark

Description

@Soundmark

发生了什么?

问题描述

单击选中节点或线路,如果节点或线路不是处于最顶层,就无法删除,需要第二次对节点或线路进行点击,再按删除才可以删除。

目前的排查进展

核心库用了mousetrap作为事件处理库,当初始化mousetrap的时候,mousetrap会默认对document元素进行一个事件绑定,核心库则对画布进行事件绑定。
第一次单击元素的时候,按删除按钮会触发mousetrap对document元素的事件系统,第二次单击元素,再按删除按钮才会触发对画布的事件系统。所以应该是第一次单击的时候画布失去焦点了。
第一次单击元素,会触发元素的setZIndex方法,会暂时将元素置顶,主要问题就是出现在置顶这一步,改变了zIndex会触发重新渲染,这个过程怎么使得画布失去焦点了,目前还没有什么头绪。

目前的折中解决方案

我在mousetrap对document的事件实例中也绑定了删除按钮,这样即使画布的事件系统不触发也能正常删除

期望

基于目前的情况有没有大佬可以分析出问题所在,或者讨论一下有什么头绪。

复现demo

logicflow-test.zip

logicflow/core版本

2.1.4

logicflow/extension版本

logicflow/engine版本

No response

浏览器&环境

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions