From f266b60041be40e028f80f32d9b06180a41c3d29 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Wed, 19 Sep 2018 23:44:16 -0700 Subject: [PATCH] Handle the case where `positions` might be an empty object to begin with --- js/components/WindowManager.js | 10 +++++----- js/reducers/windows.ts | 5 +++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/js/components/WindowManager.js b/js/components/WindowManager.js index 43576839..3189e11b 100644 --- a/js/components/WindowManager.js +++ b/js/components/WindowManager.js @@ -63,7 +63,7 @@ class WindowManager extends React.Component { y: Math.ceil(offsetTop + (globalOffsetTop + offset)) }; }); - this.props.updateWindowPositions(windowPositions); + this.props.updateWindowPositions(windowPositions, false); } else { // A layout has been suplied. We will compute the bounding box and // center the given layout. @@ -87,7 +87,7 @@ class WindowManager extends React.Component { {} ); - this.props.updateWindowPositions(newPositions); + this.props.updateWindowPositions(newPositions, false); } this.props.windowsHaveBeenCentered(); }; @@ -171,7 +171,7 @@ class WindowManager extends React.Component { return diff; }, {}); - this.props.updateWindowPositions(windowPositionDiff); + this.props.updateWindowPositions(windowPositionDiff, false); }; const removeListeners = () => { @@ -228,8 +228,8 @@ const mapStateToProps = state => ({ const mapDispatchToProps = dispatch => { return { - updateWindowPositions: positions => - dispatch(updateWindowPositions(positions)), + updateWindowPositions: (positions, centered) => + dispatch(updateWindowPositions(positions, centered)), windowsHaveBeenCentered: () => dispatch(windowsHaveBeenCentered()) }; }; diff --git a/js/reducers/windows.ts b/js/reducers/windows.ts index e30158a8..bf075f6a 100644 --- a/js/reducers/windows.ts +++ b/js/reducers/windows.ts @@ -198,10 +198,11 @@ const windows = ( } return { ...w, ...serializedW }; }), - positions: objectMap(state.positions, (position, windowId) => { + // Note: We iterate genWindows here, since the positions object may be empty + positions: objectMap(state.genWindows, (position, windowId) => { const serializedPosition = serializedPositions[windowId]; if (serializedPosition == null) { - return position; + return state.positions[windowId]; } return serializedPosition; }),