summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewRootImpl.java
diff options
context:
space:
mode:
authorAlan Viverette <alanv@google.com>2013-11-14 14:48:20 -0800
committerAlan Viverette <alanv@google.com>2013-11-14 14:48:30 -0800
commitfed3f728b7fea15c73d4fda551bd0433dd4f85eb (patch)
tree63e0f8672f2dfc4099abe6cd801ad2f533089487 /core/java/android/view/ViewRootImpl.java
parente5d2af6be21a5b9b09667be2597cf1bc4b7a4a1e (diff)
Generalize mapping between local and global View coordinates
Change-Id: Ib7f5d51debe2e9773d9ef2fa60a33379b229371a
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
-rw-r--r--core/java/android/view/ViewRootImpl.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index a5f797ed9c71..ff74f9d60a13 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -28,6 +28,7 @@ import android.content.res.CompatibilityInfo;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Canvas;
+import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Point;
@@ -1124,6 +1125,28 @@ public final class ViewRootImpl implements ViewParent,
return windowSizeMayChange;
}
+ /**
+ * Modifies the input matrix such that it maps view-local coordinates to
+ * on-screen coordinates.
+ *
+ * @param m input matrix to modify
+ */
+ void transformMatrixToGlobal(Matrix m) {
+ final View.AttachInfo attachInfo = mAttachInfo;
+ m.postTranslate(attachInfo.mWindowLeft, attachInfo.mWindowTop);
+ }
+
+ /**
+ * Modifies the input matrix such that it maps on-screen coordinates to
+ * view-local coordinates.
+ *
+ * @param m input matrix to modify
+ */
+ void transformMatrixToLocal(Matrix m) {
+ final View.AttachInfo attachInfo = mAttachInfo;
+ m.preTranslate(-attachInfo.mWindowLeft, -attachInfo.mWindowTop);
+ }
+
private void performTraversals() {
// cache mView since it is used so much below...
final View host = mView;