diff options
author | Chris Tate <> | 2009-03-25 17:36:48 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-25 17:36:48 -0700 |
commit | 2ad63a9d773ba987e85ee6a23b0a0724d86d4b0e (patch) | |
tree | 6a385eb148226973d6d6ecbe4f15e47c13d76846 | |
parent | 2d8c060bbc590c0f398c7a2c7a8b3e35111929f4 (diff) | |
download | frameworks_base-2ad63a9d773ba987e85ee6a23b0a0724d86d4b0e.zip frameworks_base-2ad63a9d773ba987e85ee6a23b0a0724d86d4b0e.tar.gz frameworks_base-2ad63a9d773ba987e85ee6a23b0a0724d86d4b0e.tar.bz2 |
Automated import from //branches/donutburger/...@142784,142784
-rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java index ed8b23a..19ab21d 100644 --- a/services/java/com/android/server/WindowManagerService.java +++ b/services/java/com/android/server/WindowManagerService.java @@ -8551,6 +8551,15 @@ public class WindowManagerService extends IWindowManager.Stub implements Watchdo private void startFreezingDisplayLocked() { if (mDisplayFrozen) { + // Freezing the display also suspends key event delivery, to + // keep events from going astray while the display is reconfigured. + // If someone has changed orientation again while the screen is + // still frozen, the events will continue to be blocked while the + // successive orientation change is processed. To prevent spurious + // ANRs, we reset the event dispatch timeout in this case. + synchronized (mKeyWaiter) { + mKeyWaiter.mWasFrozen = true; + } return; } @@ -8594,10 +8603,8 @@ public class WindowManagerService extends IWindowManager.Stub implements Watchdo } Surface.unfreezeDisplay(0); - // Freezing the display also suspends key event delivery, to - // keep events from going astray while the display is reconfigured. - // Now that we're back, notify the key waiter that we're alive - // again and it should restart its timeouts. + // Reset the key delivery timeout on unfreeze, too. We force a wakeup here + // too because regular key delivery processing should resume immediately. synchronized (mKeyWaiter) { mKeyWaiter.mWasFrozen = true; mKeyWaiter.notifyAll(); |