Log and skip init of synthetic keyboard events for IE11 We don't have a solution synthetic keyboard events in IE11 so this patch changes it to skip the initialization and log the issue instead of throwing an exception. Bug: issue 8463 Change-Id: I8230e542c7a6ec74418d62f6c4b3aadf41de59e1 Review-Link: https://gwt-review.googlesource.com/#/c/10202/ (cherry picked from commit d25051f64d60083d5e38f052f71ab49f96776963)
diff --git a/user/src/com/google/gwt/dom/client/DOMImplMozilla.java b/user/src/com/google/gwt/dom/client/DOMImplMozilla.java index ab41f8d..d246e85 100644 --- a/user/src/com/google/gwt/dom/client/DOMImplMozilla.java +++ b/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
@@ -224,9 +224,17 @@ private native NativeEvent createKeyEventImpl(Document doc, String type, boolean canBubble, boolean cancelable, boolean ctrlKey, boolean altKey, boolean shiftKey, boolean metaKey, int keyCode, int charCode) /*-{ - var evt = doc.createEvent('KeyEvents'); - evt.initKeyEvent(type, canBubble, cancelable, null, ctrlKey, altKey, - shiftKey, metaKey, keyCode, charCode); + var evt = doc.createEvent('KeyboardEvent'); + if (evt.initKeyEvent) { + // Gecko + evt.initKeyEvent(type, canBubble, cancelable, null, ctrlKey, altKey, + shiftKey, metaKey, keyCode, charCode); + } else { + // This happens to be IE11+ as of today + if ($wnd.console) { + $wnd.console.error("Synthetic keyboard events are not supported in this browser"); + } + } return evt; }-*/;