summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/service/wallpaper/WallpaperService.java10
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 507dc7a1d59a..95c959da8456 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