diff options
| -rw-r--r-- | core/java/android/service/wallpaper/WallpaperService.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index 6534a9058b63..82e0b4a1aecc 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -1494,6 +1494,16 @@ public abstract class WallpaperService extends Service { private void doDetachEngine() { mActiveEngines.remove(mEngine); mEngine.detach(); + // Some wallpapers will not trigger the rendering threads of the remaining engines even + // if they are visible, so we need to toggle the state to get their attention. + if (!mDetached.get()) { + for (Engine eng : mActiveEngines) { + if (eng.mVisible) { + eng.doVisibilityChanged(false); + eng.doVisibilityChanged(true); + } + } + } } @Override |