diff --git a/src/app/App.tsx b/src/app/App.tsx index 0d59df5e..1486cf08 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -2459,6 +2459,10 @@ export function App({ store, initialStatusMessage }: AppProps) { } }; + const requestViewportCameraSync = () => { + setViewportCameraSyncRequestId((current) => current + 1); + }; + const openAddMenuAt = (position: HierarchicalMenuPosition) => { setHoveredAssetId(null); setAddMenuPosition(position); @@ -2598,6 +2602,7 @@ export function App({ store, initialStatusMessage }: AppProps) { } store.clearTransformSession(); + requestViewportCameraSync(); setStatusMessage(status); }; @@ -2606,6 +2611,7 @@ export function App({ store, initialStatusMessage }: AppProps) { ) => { if (!doesTransformSessionChangeTarget(activeTransformSession)) { store.clearTransformSession(); + requestViewportCameraSync(); setStatusMessage("No transform change was committed."); return; } @@ -2618,11 +2624,13 @@ export function App({ store, initialStatusMessage }: AppProps) { activeTransformSession ) ); + requestViewportCameraSync(); setStatusMessage( `${getTransformOperationPastTense(activeTransformSession.operation)} ${getTransformTargetLabel(activeTransformSession.target).toLowerCase()}.` ); } catch (error) { store.clearTransformSession(); + requestViewportCameraSync(); setStatusMessage(getErrorMessage(error)); } }; @@ -3910,6 +3918,7 @@ export function App({ store, initialStatusMessage }: AppProps) { try { store.executeCommand(createDeleteBoxBrushCommand(brushId)); + requestViewportCameraSync(); setStatusMessage(`Deleted ${label}.`); return true; } catch (error) { @@ -3931,6 +3940,7 @@ export function App({ store, initialStatusMessage }: AppProps) { try { store.executeCommand(createDeleteEntityCommand(entityId)); + requestViewportCameraSync(); setStatusMessage(`Deleted ${label}.`); return true; } catch (error) { @@ -3952,6 +3962,7 @@ export function App({ store, initialStatusMessage }: AppProps) { try { store.executeCommand(createDeleteModelInstanceCommand(modelInstanceId)); + requestViewportCameraSync(); setStatusMessage(`Deleted ${label}.`); return true; } catch (error) { @@ -7023,6 +7034,7 @@ export function App({ store, initialStatusMessage }: AppProps) { toolPreview={viewportToolPreview} transformSession={transformSession} cameraState={editorState.viewportPanels[panelId].cameraState} + cameraSyncRequestId={viewportCameraSyncRequestId} focusRequestId={ focusRequest.panelId === panelId ? focusRequest.id : 0 }