summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java')
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java b/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
index 0cd229968..479652ce3 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageDraw.java
@@ -27,11 +27,13 @@ public class ImageDraw extends ImageShow {
public ImageDraw(Context context, AttributeSet attrs) {
super(context, attrs);
resetParameter();
+ super.setOriginalDisabled(true);
}
public ImageDraw(Context context) {
super(context);
resetParameter();
+ super.setOriginalDisabled(true);
}
public void setEditor(EditorDraw editorDraw) {
@@ -82,20 +84,32 @@ public class ImageDraw extends ImageShow {
float[] mTmpPoint = new float[2]; // so we do not malloc
@Override
public boolean onTouchEvent(MotionEvent event) {
- if (event.getPointerCount() != 1) {
- return false;
+ boolean ret = super.onTouchEvent(event);
+ if (event.getPointerCount() > 1) {
+ if (mFRep.getCurrentDrawing() != null) {
+ mFRep.clearCurrentSection();
+ mEditorDraw.commitLocalRepresentation();
+ }
+ return ret;
+ }
+ if (event.getAction() != MotionEvent.ACTION_DOWN) {
+ if (mFRep.getCurrentDrawing() == null) {
+ return ret;
+ }
}
ImageFilterDraw filter = (ImageFilterDraw) getCurrentFilter();
if (event.getAction() == MotionEvent.ACTION_DOWN) {
+ calcScreenMapping();
mTmpPoint[0] = event.getX();
mTmpPoint[1] = event.getY();
mToOrig.mapPoints(mTmpPoint);
mFRep.startNewSection(mType, mCurrentColor, mCurrentSize, mTmpPoint[0], mTmpPoint[1]);
-
}
+
if (event.getAction() == MotionEvent.ACTION_MOVE) {
+
int historySize = event.getHistorySize();
final int pointerCount = event.getPointerCount();
for (int h = 0; h < historySize; h++) {
@@ -108,6 +122,7 @@ public class ImageDraw extends ImageShow {
}
}
}
+
if (event.getAction() == MotionEvent.ACTION_UP) {
mTmpPoint[0] = event.getX();
mTmpPoint[1] = event.getY();
@@ -119,19 +134,10 @@ public class ImageDraw extends ImageShow {
return true;
}
- Matrix mRotateToScreen;
- Matrix mToScreen;
- Matrix mToOrig = new Matrix();
+ Matrix mRotateToScreen = new Matrix();
+ Matrix mToOrig;
private void calcScreenMapping() {
-
- GeometryMetadata geo = getImagePreset().mGeoData;
- mToScreen = geo.getOriginalToScreen(false,
- mImageLoader.getOriginalBounds().width(),
- mImageLoader.getOriginalBounds().height(), getWidth(), getHeight());
- mRotateToScreen = geo.getOriginalToScreen(true,
- mImageLoader.getOriginalBounds().width(),
- mImageLoader.getOriginalBounds().height(), getWidth(), getHeight());
- mRotateToScreen.invert(mToOrig);
+ mToOrig = getScreenToImageMatrix(true);
mToOrig.invert(mRotateToScreen);
}