diff options
| -rw-r--r-- | services/java/com/android/server/WallpaperManagerService.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/services/java/com/android/server/WallpaperManagerService.java b/services/java/com/android/server/WallpaperManagerService.java index 4925a4e46e51..cca6536ca93c 100644 --- a/services/java/com/android/server/WallpaperManagerService.java +++ b/services/java/com/android/server/WallpaperManagerService.java @@ -169,6 +169,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { WallpaperConnection mWallpaperConnection; long mLastDiedTime; boolean mWallpaperUpdating; + boolean mDesiredDimensionChanging; class WallpaperConnection extends IWallpaperConnection.Stub implements ServiceConnection { @@ -213,6 +214,13 @@ class WallpaperManagerService extends IWallpaperManager.Stub { public void attachEngine(IWallpaperEngine engine) { mEngine = engine; + if (engine != null && mDesiredDimensionChanging) { + try { + engine.setDesiredSize(mWidth, mHeight); + mDesiredDimensionChanging = false; + } catch (RemoteException e) { + } + } } public ParcelFileDescriptor setWallpaper(String name) { @@ -395,6 +403,7 @@ class WallpaperManagerService extends IWallpaperManager.Stub { synchronized (mLock) { if (width != mWidth || height != mHeight) { + boolean desiredDimensionPropagated = false; mWidth = width; mHeight = height; saveSettingsLocked(); @@ -403,11 +412,15 @@ class WallpaperManagerService extends IWallpaperManager.Stub { try { mWallpaperConnection.mEngine.setDesiredSize( width, height); + desiredDimensionPropagated = true; } catch (RemoteException e) { } notifyCallbacksLocked(); } } + if (!desiredDimensionPropagated) { + mDesiredDimensionChanging = true; + } } } } |