summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow
diff options
context:
space:
mode:
authorJohn Hoford <hoford@google.com>2013-05-22 16:47:03 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-05-22 16:47:03 -0700
commitb37d996fa90b1b98ea4aee75a696d9722c535619 (patch)
treefc8be8bb13bd9bd4100a4035d2fd09bad4e510e3 /src/com/android/gallery3d/filtershow/imageshow
parent970c0bdd33978839857d05adc98d014dfdd8ef07 (diff)
parentc4870f4c07d085ed6b9f220c2f04ef8ea5a1cd6e (diff)
downloadandroid_packages_apps_Snap-b37d996fa90b1b98ea4aee75a696d9722c535619.tar.gz
android_packages_apps_Snap-b37d996fa90b1b98ea4aee75a696d9722c535619.tar.bz2
android_packages_apps_Snap-b37d996fa90b1b98ea4aee75a696d9722c535619.zip
am 4d25d129: Merge "fix ellipse logic for portrait" into gb-ub-photos-bryce
* commit '4d25d129d1c9f92033382e12260d3f40521cf3fd': fix ellipse logic for portrait
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow')
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/EclipseControl.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/EclipseControl.java b/src/com/android/gallery3d/filtershow/imageshow/EclipseControl.java
index e334fc9f4..8ceb37599 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/EclipseControl.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/EclipseControl.java
@@ -118,6 +118,13 @@ public class EclipseControl {
mScrToImg.mapPoints(point);
x = point[0];
y = point[1];
+
+ // Test if the matrix is swapping x and y
+ point[0] = 0;
+ point[1] = 1;
+ mScrToImg.mapVectors(point);
+ boolean swapxy = (point[0] > 0.0f);
+
int sign = 1;
switch (handle) {
case HAN_CENTER:
@@ -129,14 +136,24 @@ public class EclipseControl {
case HAN_NORTH:
sign = -1;
case HAN_SOUTH:
- float raddy = mDownRadiusY - Math.abs(mDownY - mDownCenterY);
- oval.setRadiusY(Math.abs(y - oval.getCenterY() + sign * raddy));
+ if (swapxy) {
+ float raddx = mDownRadiusY - Math.abs(mDownX - mDownCenterY);
+ oval.setRadiusY(Math.abs(x - oval.getCenterY() + sign * raddx));
+ } else {
+ float raddy = mDownRadiusY - Math.abs(mDownY - mDownCenterY);
+ oval.setRadiusY(Math.abs(y - oval.getCenterY() + sign * raddy));
+ }
break;
case HAN_EAST:
sign = -1;
case HAN_WEST:
- float raddx = mDownRadiusX - Math.abs(mDownX - mDownCenterX);
- oval.setRadiusX(Math.abs(x - oval.getCenterX() - sign * raddx));
+ if (swapxy) {
+ float raddy = mDownRadiusX - Math.abs(mDownY - mDownCenterX);
+ oval.setRadiusX(Math.abs(y - oval.getCenterX() + sign * raddy));
+ } else {
+ float raddx = mDownRadiusX - Math.abs(mDownX - mDownCenterX);
+ oval.setRadiusX(Math.abs(x - oval.getCenterX() - sign * raddx));
+ }
break;
case HAN_SE:
case HAN_NE: