diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 4ee0d2535c7b8..a99ae269e2d96 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -3506,6 +3506,10 @@ public class PhoneWindowManager implements WindowManagerPolicy { } if (screenOnListener != null) { if (mKeyguardMediator != null) { + try { + mWindowManager.setEventDispatching(true); + } catch (RemoteException unhandled) { + } mKeyguardMediator.onScreenTurnedOn(new KeyguardViewManager.ShowListener() { @Override public void onShown(IBinder windowToken) { if (windowToken != null) { diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index d9e0ec6976d00..b1612a159af79 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -6621,15 +6621,14 @@ public class WindowManagerService extends IWindowManager.Stub public void setEventDispatching(boolean enabled) { if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS, - "resumeKeyDispatching()")) { + "setEventDispatching()")) { throw new SecurityException("Requires MANAGE_APP_TOKENS permission"); } synchronized (mWindowMap) { mInputMonitor.setEventDispatchingLw(enabled); + sendScreenStatusToClientsLocked(); } - - sendScreenStatusToClients(); } public IBinder getFocusedWindowClientToken() { @@ -6735,7 +6734,7 @@ public class WindowManagerService extends IWindowManager.Stub mPolicy.systemReady(); } - private void sendScreenStatusToClients() { + private void sendScreenStatusToClientsLocked() { final ArrayList windows = mWindows; final int count = windows.size(); boolean on = mPowerManager.isScreenOn();