title: Issue with setOnKeyListener using crosswalk
body: <p>I'm trying to start using crosswalk in a cordova app, the problem is that the app uses a custom plugin for a barcode reader in a specific device.</p>
  
  <p>We basically have a plugin class that calls custom View which extends <code>EditText</code>, in the view we create a <code>OnKeyListener</code> to check if the specific key is press.</p>
  
  <p>During the initialization of the plugin class we use the <code>webView.getView().setOnKeyListener(view.getScanKeyListener());</code> to create the <code>OnKeyListener</code> to check the keypress.</p>
  
  <pre><code>public class ScannerInputPlugin extends CordovaPlugin implements ScannerInputView.ScannerInputListener {
      private static CallbackContext callback = null;
  
      @Override
      public void pluginInitialize() {
          cordova.getActivity().runOnUiThread(new java.lang.Runnable() {
              public void run() {
                  ScannerInputView view = new ScannerInputView(cordova.getActivity(), ScannerInputPlugin.this);
                  ((ViewGroup) webView.getView()).addView(view);
                  webView.getView().setOnKeyListener(view.getScanKeyListener());
              }
          });
      }
  
      @Override
      public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException {
          if (action.equals("register")) {
              callback = callbackContext;
              return true;
          } else {
              return false;
          }
      }
  
      @Override
      public void onScannerInput(CharSequence input) {
          if (callback != null) {
              PluginResult result = new PluginResult(PluginResult.Status.OK, input != null ? input.toString() : null);
              result.setKeepCallback(true);
              callback.sendPluginResult(result);
          }
      }
  }
  </code></pre>
  
  <p>However in the view the <code>OnKeyListener</code> is never called, this only happens when using crosswalk, the only major change I found when debugging the app is that the <code>webview.engine</code> changes to a <code>XWalkWebViewEngine</code>.</p>
  
  <pre><code>public class ScannerInputView extends EditText {
      public static interface ScannerInputListener {
          void onScannerInput(CharSequence input);
      }
  
      public static final int KEYCODE_SCAN = 220;
  
      public ScannerInputView(Context context, final ScannerInputListener listener) {
          super(context);
          setLayoutParams(new ViewGroup.LayoutParams(0, 0));
          setInputType(InputType.TYPE_NULL);
          addTextChangedListener(new TextWatcher() {
              @Override
              public void onTextChanged(CharSequence s, int start, int before, int count) {
                  if (listener != null) {
                      if (count &gt; 0 &amp;&amp; s.charAt(start) != 0)
                          s = s.subSequence(start, start + count);
                      else
                          s = null;
                      listener.onScannerInput(s);
                  }
              }
  
              @Override
              public void beforeTextChanged(CharSequence s, int start, int count, int after) {
              }
  
              @Override
              public void afterTextChanged(Editable s) {
              }
          });
      }
  
      public View.OnKeyListener getScanKeyListener() {
          return new View.OnKeyListener() {
              @Override
              public boolean onKey(View v, int keyCode, KeyEvent event) {
                  if (keyCode == KEYCODE_SCAN &amp;&amp; event.getAction() == KeyEvent.ACTION_DOWN) {
                      requestFocus();
                      return true;
                  }
                  return false;
              }
          };
      }
  }
  </code></pre>
  
  <p>I think this has something to do with the crosswalk engine but I have yet to find the cause, does anyone have any tips about the matter?</p>