OSDN Git Service

Don't enable input dispatch until display enabled.
authorJeff Brown <jeffbrown@google.com>
Sun, 24 Jun 2012 19:14:49 +0000 (12:14 -0700)
committerJeff Brown <jeffbrown@google.com>
Sun, 24 Jun 2012 19:23:58 +0000 (12:23 -0700)
Bug: 6263070
Change-Id: I05d036fc1d9ec06d164d6743d45bb3f199cfab47

services/java/com/android/server/wm/WindowManagerService.java

index 73bfe8e..f84451e 100755 (executable)
@@ -5285,6 +5285,9 @@ public class WindowManagerService extends IWindowManager.Stub
             } catch (RemoteException ex) {
                 Slog.e(TAG, "Boot completed: SurfaceFlinger is dead!");
             }
+
+            // Enable input dispatch.
+            mInputMonitor.setEventDispatchingLw(mEventDispatchingEnabled);
         }
 
         mPolicy.enableScreenAfterBoot();
@@ -6636,7 +6639,8 @@ public class WindowManagerService extends IWindowManager.Stub
     // -------------------------------------------------------------
     
     final InputMonitor mInputMonitor = new InputMonitor(this);
-    
+    private boolean mEventDispatchingEnabled;
+
     public void pauseKeyDispatching(IBinder _token) {
         if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS,
                 "pauseKeyDispatching()")) {
@@ -6672,7 +6676,10 @@ public class WindowManagerService extends IWindowManager.Stub
         }
 
         synchronized (mWindowMap) {
-            mInputMonitor.setEventDispatchingLw(enabled);
+            mEventDispatchingEnabled = enabled;
+            if (mDisplayEnabled) {
+                mInputMonitor.setEventDispatchingLw(enabled);
+            }
             sendScreenStatusToClientsLocked();
         }
     }