diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-08-24 20:56:05 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-08-24 20:56:05 -0700 |
commit | 6ff0037792619c4441d9d3caa4f9ab4f45c11236 (patch) | |
tree | 79494a767588fff0f92eb587b9ae109c64f2e033 | |
parent | 1fc756da434441708eb557a22363eea7f41f3f73 (diff) | |
parent | 07213e6d8895af10951851435adf96a779863f6c (diff) | |
download | frameworks_base-6ff0037792619c4441d9d3caa4f9ab4f45c11236.zip frameworks_base-6ff0037792619c4441d9d3caa4f9ab4f45c11236.tar.gz frameworks_base-6ff0037792619c4441d9d3caa4f9ab4f45c11236.tar.bz2 |
Merge "Fix to show the correct HW accel background in the preview window."
-rw-r--r-- | core/java/android/view/ViewRootImpl.java | 8 | ||||
-rw-r--r-- | services/java/com/android/server/WallpaperManagerService.java | 20 |
2 files changed, 20 insertions, 8 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 357b6e4..fdf6ad7 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -575,7 +575,6 @@ public final class ViewRootImpl extends Handler implements ViewParent, if (hardwareAccelerated) { if (!HardwareRenderer.isAvailable()) { - mAttachInfo.mHardwareAccelerationRequested = true; return; } @@ -601,6 +600,13 @@ public final class ViewRootImpl extends Handler implements ViewParent, mAttachInfo.mHardwareRenderer = HardwareRenderer.createGlRenderer(2, translucent); mAttachInfo.mHardwareAccelerated = mAttachInfo.mHardwareAccelerationRequested = mAttachInfo.mHardwareRenderer != null; + } else { + // We would normally have enabled hardware acceleration, but + // haven't because we are in the system process. We still want + // what is drawn on the screen to behave as if it is accelerated, + // so that our preview starting windows visually match what will + // actually be drawn by the app. + mAttachInfo.mHardwareAccelerationRequested = true; } } } diff --git a/services/java/com/android/server/WallpaperManagerService.java b/services/java/com/android/server/WallpaperManagerService.java index 565063a..6ceccaf 100644 --- a/services/java/com/android/server/WallpaperManagerService.java +++ b/services/java/com/android/server/WallpaperManagerService.java @@ -118,9 +118,10 @@ class WallpaperManagerService extends IWallpaperManager.Stub { File changedFile = new File(WALLPAPER_DIR, path); if (WALLPAPER_FILE.equals(changedFile)) { notifyCallbacksLocked(); - if (mWallpaperComponent == null || - mWallpaperComponent.equals(mImageWallpaperComponent)) { - bindWallpaperComponentLocked(mWallpaperComponent, true); + if (mWallpaperComponent == null || mImageWallpaperPending) { + mImageWallpaperPending = false; + bindWallpaperComponentLocked(mImageWallpaperComponent, true); + saveSettingsLocked(); } } } @@ -133,7 +134,12 @@ class WallpaperManagerService extends IWallpaperManager.Stub { int mWidth = -1; int mHeight = -1; - + + /** + * Client is currently writing a new image wallpaper. + */ + boolean mImageWallpaperPending; + /** * Resource name if using a picture from the wallpaper gallery */ @@ -343,6 +349,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { } final long ident = Binder.clearCallingIdentity(); try { + mImageWallpaperPending = false; bindWallpaperComponentLocked(null, false); } catch (IllegalArgumentException e) { // This can happen if the default wallpaper component doesn't @@ -433,9 +440,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { try { ParcelFileDescriptor pfd = updateWallpaperBitmapLocked(name); if (pfd != null) { - // Bind the wallpaper to an ImageWallpaper - bindWallpaperComponentLocked(mImageWallpaperComponent, false); - saveSettingsLocked(); + mImageWallpaperPending = true; } return pfd; } finally { @@ -463,6 +468,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { synchronized (mLock) { final long ident = Binder.clearCallingIdentity(); try { + mImageWallpaperPending = false; bindWallpaperComponentLocked(name, false); } finally { Binder.restoreCallingIdentity(ident); |