在 canvas 之外单击时保留 canvas 选择

Keep canvas selection when a click is done outside of the canvas

我有一个包含多个组件的网页(在 Vaadin 中开发)。在中心,我有一个 draw2d canvas,其中包含我可以 select、拖放、删除等项目。当我单击 canvas 时,选择会更新,我想保持这种行为。

我需要的是防止 canvas 之外的点击与 selection 交互。执行此操作的一种丑陋方式是跟踪当前的 selection,当它被不在 canvas 中的点击取消 select 时,将其重新设置为它的跟踪值。

我很想听听你对此的看法。

看起来 canvas 是其他组件的 "on top"。所以在我的例子中放置 z-indexes 以便 component.z-index > canvas.z-index 解决问题。