OSDN Git Service

merge from open-source master
authorThe Android Open Source Project <initial-contribution@android.com>
Wed, 12 May 2010 19:33:35 +0000 (12:33 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Wed, 12 May 2010 19:33:35 +0000 (12:33 -0700)
Change-Id: I24ecfac151c0ddc27237d711c95b8fe488d7931b

1  2 
services/java/com/android/server/WindowManagerService.java

@@@ -6526,15 -6435,26 +6526,26 @@@ public class WindowManagerService exten
                              case RawInputEvent.CLASS_KEYBOARD:
                                  KeyEvent ke = (KeyEvent)ev.event;
                                  if (ke.isDown()) {
-                                     lastKey = ke;
-                                     downTime = curTime;
-                                     keyRepeatCount = 0;
                                      lastKeyTime = curTime;
-                                     nextKeyTime = lastKeyTime
-                                             + ViewConfiguration.getLongPressTimeout();
-                                     if (DEBUG_INPUT) Slog.v(
-                                         TAG, "Received key down: first repeat @ "
-                                         + nextKeyTime);
+                                     if (lastKey != null &&
+                                             ke.getKeyCode() == lastKey.getKeyCode()) {
+                                         keyRepeatCount++;
+                                         // Arbitrary long timeout to block
+                                         // repeating here since we know that
+                                         // the device driver takes care of it.
+                                         nextKeyTime = lastKeyTime + LONG_WAIT;
 -                                        if (DEBUG_INPUT) Log.v(
++                                        if (DEBUG_INPUT) Slog.v(
+                                                 TAG, "Received repeated key down");
+                                     } else {
+                                         downTime = curTime;
+                                         keyRepeatCount = 0;
+                                         nextKeyTime = lastKeyTime
+                                                 + ViewConfiguration.getLongPressTimeout();
 -                                        if (DEBUG_INPUT) Log.v(
++                                        if (DEBUG_INPUT) Slog.v(
+                                             TAG, "Received key down: first repeat @ "
+                                             + nextKeyTime);
+                                     }
+                                     lastKey = ke;
                                  } else {
                                      lastKey = null;
                                      downTime = 0;