Loading core/java/android/view/SurfaceView.java +25 −2 Original line number Diff line number Diff line Loading @@ -256,6 +256,23 @@ public class SurfaceView extends View { super.draw(canvas); } @Override public boolean dispatchTouchEvent(MotionEvent event) { // SurfaceView uses pre-scaled size unless fixed size is requested. This hook // scales the event back to the pre-scaled coordinates for such surface. if (mRequestedWidth < 0 && mAppScale != 1.0f) { MotionEvent scaledBack = MotionEvent.obtain(event); scaledBack.scale(mAppScale); try { return super.dispatchTouchEvent(scaledBack); } finally { scaledBack.recycle(); } } else { return super.dispatchTouchEvent(event); } } @Override protected void dispatchDraw(Canvas canvas) { // if SKIP_DRAW is cleared, draw() has already punched a hole Loading @@ -279,6 +296,12 @@ public class SurfaceView extends View { int myHeight = mRequestedHeight; if (myHeight <= 0) myHeight = getHeight(); // Use original size for surface unless fixed size is requested. if (mRequestedWidth <= 0) { myWidth *= mAppScale; myHeight *= mAppScale; } getLocationInWindow(mLocation); final boolean creating = mWindow == null; final boolean formatChanged = mFormat != mRequestedFormat; Loading Loading @@ -334,7 +357,7 @@ public class SurfaceView extends View { mSurfaceLock.lock(); mDrawingStopped = !visible; final int relayoutResult = mSession.relayout( mWindow, mLayout, (int) (mWidth * mAppScale), (int) (mHeight * mAppScale), mWindow, mLayout, mWidth, mHeight, visible ? VISIBLE : GONE, false, mWinFrame, mContentInsets, mVisibleInsets, mSurface); Loading Loading
core/java/android/view/SurfaceView.java +25 −2 Original line number Diff line number Diff line Loading @@ -256,6 +256,23 @@ public class SurfaceView extends View { super.draw(canvas); } @Override public boolean dispatchTouchEvent(MotionEvent event) { // SurfaceView uses pre-scaled size unless fixed size is requested. This hook // scales the event back to the pre-scaled coordinates for such surface. if (mRequestedWidth < 0 && mAppScale != 1.0f) { MotionEvent scaledBack = MotionEvent.obtain(event); scaledBack.scale(mAppScale); try { return super.dispatchTouchEvent(scaledBack); } finally { scaledBack.recycle(); } } else { return super.dispatchTouchEvent(event); } } @Override protected void dispatchDraw(Canvas canvas) { // if SKIP_DRAW is cleared, draw() has already punched a hole Loading @@ -279,6 +296,12 @@ public class SurfaceView extends View { int myHeight = mRequestedHeight; if (myHeight <= 0) myHeight = getHeight(); // Use original size for surface unless fixed size is requested. if (mRequestedWidth <= 0) { myWidth *= mAppScale; myHeight *= mAppScale; } getLocationInWindow(mLocation); final boolean creating = mWindow == null; final boolean formatChanged = mFormat != mRequestedFormat; Loading Loading @@ -334,7 +357,7 @@ public class SurfaceView extends View { mSurfaceLock.lock(); mDrawingStopped = !visible; final int relayoutResult = mSession.relayout( mWindow, mLayout, (int) (mWidth * mAppScale), (int) (mHeight * mAppScale), mWindow, mLayout, mWidth, mHeight, visible ? VISIBLE : GONE, false, mWinFrame, mContentInsets, mVisibleInsets, mSurface); Loading