summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-01-25 14:21:00 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-25 14:21:00 -0800
commit3168a13723ff0f3f87937457fe33c3518caa4bb9 (patch)
treecdcc30da31fb690fe87188af03bc149891bd3764 /core/java/android
parent47fc854ae9947e0fe5ca0e33e22a41618ba7523b (diff)
parent30bc34f191ca8a009af313fc751e5b4bff6e39a1 (diff)
downloadframeworks_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.java3
-rw-r--r--core/java/android/view/SurfaceView.java12
-rw-r--r--core/java/android/view/ViewRoot.java1
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) {