Fix potential crash in the scene editor

This commit is contained in:
Florian Rival
2021-10-25 22:21:17 +01:00
parent 50d7bec375
commit 8fdba503ab
2 changed files with 6 additions and 2 deletions

View File

@@ -53,10 +53,11 @@ export default class InstancesMover {
return totalDeltaY;
}
_getOrCreateSelectionAABB(instances: gdInitialInstance[]): Rectangle {
_getOrCreateSelectionAABB(instances: gdInitialInstance[]): ?Rectangle {
if (this._initialSelectionAABB) {
return this._initialSelectionAABB;
}
if (!instances.length) return null;
let initialSelectionAABB = new Rectangle();
this.instanceMeasurer.getInstanceAABB(instances[0], initialSelectionAABB);
const initialInstanceAABB = new Rectangle();
@@ -85,6 +86,7 @@ export default class InstancesMover {
// It will magnet the corner nearest to the grabbing position
const initialSelectionAABB = this._getOrCreateSelectionAABB(instances);
if (!initialSelectionAABB) return;
const magnetLeft = this._startX < initialSelectionAABB.centerX();
const magnetTop = this._startY < initialSelectionAABB.centerY();

View File

@@ -115,11 +115,12 @@ export default class InstancesResizer {
});
}
_getOrCreateSelectionAABB(instances: gdInitialInstance[]): Rectangle {
_getOrCreateSelectionAABB(instances: gdInitialInstance[]): ?Rectangle {
let initialSelectionAABB = this._initialSelectionAABB;
if (initialSelectionAABB) {
return initialSelectionAABB;
}
if (!instances.length) return null;
initialSelectionAABB = new Rectangle();
initialSelectionAABB.setRectangle(
this._getOrCreateInstanceAABB(instances[0])
@@ -142,6 +143,7 @@ export default class InstancesResizer {
this.totalDeltaY += deltaY;
const initialSelectionAABB = this._getOrCreateSelectionAABB(instances);
if (!initialSelectionAABB) return;
// Round the grabbed handle position on the grid.
const grabbingRelativePosition =