Skip to content

Commit

Permalink
Fix incorrect origin calculation for devices with screen scaling factor
Browse files Browse the repository at this point in the history
  • Loading branch information
abhayastudios committed Aug 31, 2018
1 parent 75f471e commit e2a122b
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions app/main-page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import * as utils from "utils/utils";
import {Label} from "ui/label";
import {View} from "ui/core/view";
import {GestureEventData, PanGestureEventData, PinchGestureEventData} from "ui/gestures";
import { layout } from 'utils/utils';

let states = ["unknown", "start", "change", "end"];

Expand Down Expand Up @@ -52,14 +53,14 @@ export function onPinch(args: PinchGestureEventData) {
const newOriginX = args.getFocusX() - item.translateX;
const newOriginY = args.getFocusY() - item.translateY;

const oldOriginX = item.originX * item.getMeasuredWidth();
const oldOriginY = item.originY * item.getMeasuredHeight();
const oldOriginX = item.originX * layout.toDeviceIndependentPixels(item.getMeasuredWidth());
const oldOriginY = item.originY * layout.toDeviceIndependentPixels(item.getMeasuredHeight());

item.translateX += (oldOriginX - newOriginX) * (1 - item.scaleX);
item.translateY += (oldOriginY - newOriginY) * (1 - item.scaleY);

item.originX = newOriginX / item.getMeasuredWidth();
item.originY = newOriginY / item.getMeasuredHeight();
item.originX = newOriginX / layout.toDeviceIndependentPixels(item.getMeasuredWidth());
item.originY = newOriginY / layout.toDeviceIndependentPixels(item.getMeasuredHeight());

startScale = item.scaleX;
}
Expand Down

0 comments on commit e2a122b

Please sign in to comment.