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:
Bartel Eerdekens
2019-12-12 15:52:21 +01:00
parent 1d5ab683c3
commit 3e91dad2e1
2 changed files with 11 additions and 7 deletions

View File

@@ -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() {

View File

@@ -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);
}
}
}