Bug 637892 - Do not filter soft keyboard key events, r=dougt a=blocking-fennec
authorMichael Wu <mwu@mozilla.com>
Tue, 08 Mar 2011 10:39:56 -0800
changeset 63358 acb121c0e3407951ee476ed621166d1b13f09e0b
parent 63357 19021b7524f2cbacfa15b131a633ca96d0b04d2a
child 63359 475ae5b4954071824abd78dc504996f03c859b7a
push idunknown
push userunknown
push dateunknown
reviewersdougt, blocking-fennec
bugs637892
milestone2.0b13pre
Bug 637892 - Do not filter soft keyboard key events, r=dougt a=blocking-fennec
embedding/android/GeckoSurfaceView.java
--- a/embedding/android/GeckoSurfaceView.java
+++ b/embedding/android/GeckoSurfaceView.java
@@ -489,16 +489,17 @@ class GeckoSurfaceView
                     event = new KeyEvent(event.getAction(), KeyEvent.KEYCODE_TAB);
                 break;
             default:
                 break;
         }
         // KeyListener returns true if it handled the event for us.
         if (mIMEState == IME_STATE_DISABLED ||
             keyCode == KeyEvent.KEYCODE_ENTER ||
+            (event.getFlags() & KeyEvent.FLAG_SOFT_KEYBOARD) != 0 ||
             !mKeyListener.onKeyDown(this, mEditable, keyCode, event))
             GeckoAppShell.sendEventToGecko(new GeckoEvent(event));
         return true;
     }
 
     @Override
     public boolean onKeyUp(int keyCode, KeyEvent event) {
         switch (keyCode) {
@@ -506,16 +507,17 @@ class GeckoSurfaceView
                 if (!event.isTracking() || event.isCanceled())
                     return false;
                 break;
             default:
                 break;
         }
         if (mIMEState == IME_STATE_DISABLED ||
             keyCode == KeyEvent.KEYCODE_ENTER ||
+            (event.getFlags() & KeyEvent.FLAG_SOFT_KEYBOARD) != 0 ||
             !mKeyListener.onKeyUp(this, mEditable, keyCode, event))
             GeckoAppShell.sendEventToGecko(new GeckoEvent(event));
         return true;
     }
 
     @Override
     public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {
         GeckoAppShell.sendEventToGecko(new GeckoEvent(event));