summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Playle <mike.playle@realvnc.com>2010-11-29 16:01:03 +0000
committerMike Playle <mike.playle@realvnc.com>2010-12-02 16:25:46 +0000
commitc6ded10dd1ee08c887d0e81d683a7611fbe3ca4d (patch)
tree8c49fb439a2e9427634fc869798f866d42b1469e
parente1de3f390e7be3f82fa5e3e5bf6d6c8cc8414091 (diff)
downloadbase-c6ded10dd1ee08c887d0e81d683a7611fbe3ca4d.tar.gz
Preserve flags field of event passed to injectKeyEvent()
This patch allows users of WindowManagerService.injectKeyEvent() to set flags on the key event being injected. In particular this allows long presses (FLAG_LONG_PRESS) to be injected into the window manager.
-rw-r--r--services/java/com/android/server/WindowManagerService.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index dd4aeabfbf0c..6e1b63ae535f 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -5488,12 +5488,13 @@ public class WindowManagerService extends IWindowManager.Stub
int metaState = ev.getMetaState();
int deviceId = ev.getDeviceId();
int scancode = ev.getScanCode();
+ int flags = ev.getFlags();
if (eventTime == 0) eventTime = SystemClock.uptimeMillis();
if (downTime == 0) downTime = eventTime;
KeyEvent newEvent = new KeyEvent(downTime, eventTime, action, code, repeatCount, metaState,
- deviceId, scancode, KeyEvent.FLAG_FROM_SYSTEM);
+ deviceId, scancode, flags | KeyEvent.FLAG_FROM_SYSTEM);
final int pid = Binder.getCallingPid();
final int uid = Binder.getCallingUid();