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.
pull/2645/head
Christopher Chedeau 4 years ago committed by GitHub
parent 81f8039ec7
commit 9a3a3ecb44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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

Loading…
Cancel
Save