fix: Center zoom on iPhone and iPad (#2642)

My last attempt removed the gesture handler altogether but broke macbooks. This one keeps it working on macbook but makes sure it zooms properly on iPhone and iPad.
This commit is contained in:
Christopher Chedeau 2020-12-20 12:13:15 -08:00 committed by GitHub
parent 81f8039ec7
commit 9a3a3ecb44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1426,6 +1426,16 @@ class App extends React.Component<ExcalidrawProps, AppState> {
private onGestureChange = withBatchedUpdates((event: GestureEvent) => {
event.preventDefault();
// onGestureChange only has zoom factor but not the center.
// If we're on iPad or iPhone, then we recognize multi-touch and will
// zoom in at the right location on the touchMove handler already.
// On Macbook, we don't have those events so will zoom in at the
// current location instead.
if (gesture.pointers.size === 2) {
return;
}
const initialScale = gesture.initialScale;
if (initialScale) {
this.setState(({ zoom, offsetLeft, offsetTop }) => ({