mirror of
https://github.com/projectstorm/react-diagrams.git
synced 2026-03-13 09:50:09 +08:00
Unselect when not in Selection bounding box anymore.
Performance optimisation to only fire event when value actually changed. Solves #417
This commit is contained in:
@@ -98,14 +98,16 @@ export class BaseModel<G extends BaseModelGenerics = BaseModelGenerics> extends
|
||||
}
|
||||
|
||||
setSelected(selected: boolean = true) {
|
||||
this.options.selected = selected;
|
||||
if (this.options.selected !== selected) {
|
||||
this.options.selected = selected;
|
||||
|
||||
this.fireEvent(
|
||||
{
|
||||
isSelected: selected
|
||||
},
|
||||
'selectionChanged'
|
||||
);
|
||||
this.fireEvent(
|
||||
{
|
||||
isSelected: selected
|
||||
},
|
||||
'selectionChanged'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
remove() {
|
||||
|
||||
@@ -58,6 +58,8 @@ export class SelectionBoxState extends AbstractDisplacementState {
|
||||
const bounds = ((model as unknown) as ModelGeometryInterface).getBoundingBox();
|
||||
if (rect.containsPoint(bounds.getTopLeft()) && rect.containsPoint(bounds.getBottomRight())) {
|
||||
model.setSelected(true);
|
||||
} else {
|
||||
model.setSelected(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user