diff options
author | Jeff Brown <jeffbrown@google.com> | 2011-01-25 14:21:00 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-01-25 14:21:00 -0800 |
commit | 3168a13723ff0f3f87937457fe33c3518caa4bb9 (patch) | |
tree | cdcc30da31fb690fe87188af03bc149891bd3764 /core/java/android | |
parent | 47fc854ae9947e0fe5ca0e33e22a41618ba7523b (diff) | |
parent | 30bc34f191ca8a009af313fc751e5b4bff6e39a1 (diff) | |
download | frameworks_base-3168a13723ff0f3f87937457fe33c3518caa4bb9.zip frameworks_base-3168a13723ff0f3f87937457fe33c3518caa4bb9.tar.gz frameworks_base-3168a13723ff0f3f87937457fe33c3518caa4bb9.tar.bz2 |
Merge "Fix surface frame size reporting." into honeycomb
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/service/wallpaper/WallpaperService.java | 3 | ||||
-rw-r--r-- | core/java/android/view/SurfaceView.java | 12 | ||||
-rw-r--r-- | core/java/android/view/ViewRoot.java | 1 |
3 files changed, 13 insertions, 3 deletions
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index 52b0643..44887ed 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -546,7 +546,8 @@ public abstract class WallpaperService extends Service { sizeChanged = true; mCurHeight = h; } - + + mSurfaceHolder.setSurfaceFrameSize(w, h); mSurfaceHolder.mSurfaceLock.unlock(); if (!mSurfaceHolder.mSurface.isValid()) { diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index 6451d47..8a95664 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -158,6 +158,7 @@ public class SurfaceView extends View { int mHeight = -1; int mFormat = -1; final Rect mSurfaceFrame = new Rect(); + Rect mTmpDirty; int mLastSurfaceWidth = -1, mLastSurfaceHeight = -1; boolean mUpdateWindowNeeded; boolean mReportDrawNeeded; @@ -739,9 +740,16 @@ public class SurfaceView extends View { Canvas c = null; if (!mDrawingStopped && mWindow != null) { - Rect frame = dirty != null ? dirty : mSurfaceFrame; + if (dirty == null) { + if (mTmpDirty == null) { + mTmpDirty = new Rect(); + } + mTmpDirty.set(mSurfaceFrame); + dirty = mTmpDirty; + } + try { - c = mSurface.lockCanvas(frame); + c = mSurface.lockCanvas(dirty); } catch (Exception e) { Log.e(LOG_TAG, "Exception locking surface", e); } diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index 68b6a8a..ca19da2 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -1082,6 +1082,7 @@ public final class ViewRoot extends Handler implements ViewParent, //mSurfaceHolder.mSurface.copyFrom(mSurface); mSurfaceHolder.mSurface = mSurface; } + mSurfaceHolder.setSurfaceFrameSize(mWidth, mHeight); mSurfaceHolder.mSurfaceLock.unlock(); if (mSurface.isValid()) { if (!hadSurface) { |