From 6af9b92b75c820661ea995a98898395f22871498 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Thu, 5 Apr 2012 19:25:51 -0700 Subject: [PATCH] Fix looping to turn off dimming. Dimming was constantly being turned off if it wasn't time to turn it on. This caused endless reentry into the Window Manager and consumed lots of CPU. Fixes bug 6293953. Change-Id: Id87e60c7c70e96e66ce0b6297442f5ac0d2ff477 --- services/java/com/android/server/wm/WindowAnimator.java | 11 +++++------ services/java/com/android/server/wm/WindowManagerService.java | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/java/com/android/server/wm/WindowAnimator.java index 9b196cc790a3..67e057e7b845 100644 --- a/services/java/com/android/server/wm/WindowAnimator.java +++ b/services/java/com/android/server/wm/WindowAnimator.java @@ -440,9 +440,12 @@ public class WindowAnimator { w.mWinAnimator.prepareSurfaceLocked(true); } + if (mDimParams != null) { + mDimAnimator.updateParameters(mContext.getResources(), mDimParams, mCurrentTime); + } if (mDimAnimator != null && mDimAnimator.mDimShown) { - mAnimating |= mDimAnimator.updateSurface(mService.mInnerFields.mDimming, - mCurrentTime, !mService.okToDisplay()); + mAnimating |= mDimAnimator.updateSurface(mDimParams != null, mCurrentTime, + !mService.okToDisplay()); } if (mService.mBlackFrame != null) { @@ -453,10 +456,6 @@ public class WindowAnimator { mService.mBlackFrame.clearMatrix(); } } - - if (mDimParams != null) { - mDimAnimator.updateParameters(mContext.getResources(), mDimParams, mCurrentTime); - } } catch (RuntimeException e) { Log.wtf(TAG, "Unhandled exception in Window Manager", e); } finally { diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 3d6c9f096cd4..8ea00c140380 100644 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -8428,7 +8428,7 @@ public class WindowManagerService extends IWindowManager.Stub updateWallpaperVisibilityLocked(); } } - if (!mInnerFields.mDimming) { + if (!mInnerFields.mDimming && mAnimator.mDimParams != null) { mAnimator.stopDimming(); } } catch (RuntimeException e) { -- 2.11.0