| Index: webkit/glue/editor_client_impl.cc
|
| ===================================================================
|
| --- webkit/glue/editor_client_impl.cc (revision 14884)
|
| +++ webkit/glue/editor_client_impl.cc (working copy)
|
| @@ -611,6 +611,19 @@
|
| return true;
|
| }
|
|
|
| + // Here we need to filter key events.
|
| + // On Gtk/Linux, it emits key events with ASCII text and ctrl on for ctrl-<x>.
|
| + // In Webkit, EditorClient::handleKeyboardEvent in
|
| + // WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp drop such events.
|
| + // On Mac, it emits key events with ASCII text and meta on for Command-<x>.
|
| + // These key events should not emit text insert event.
|
| + // Alt key would be used to insert alternative character, so we should let
|
| + // through. Also note that Ctrl-Alt combination equals to AltGr key which is
|
| + // also used to insert alternative character.
|
| + // http://code.google.com/p/chromium/issues/detail?id=10846
|
| + // In summary, we can't think of a scenario where you'd use control w/o alt or
|
| + // meta to do insertion of a ASCII character.
|
| + // TODO(ukai): investigate more detail for various keyboard layout.
|
| if (evt->keyEvent()->text().length() == 1) {
|
| UChar ch = evt->keyEvent()->text()[0U];
|
|
|
| @@ -618,6 +631,11 @@
|
| // unexpected behaviour
|
| if (ch < ' ')
|
| return false;
|
| + // Don't insert ASCII character if ctrl w/o alt or meta is on.
|
| + if (ch < 0x80 &&
|
| + ((evt->keyEvent()->ctrlKey() && !evt->keyEvent()->altKey()) ||
|
| + evt->keyEvent()->metaKey()))
|
| + return false;
|
| }
|
|
|
| if (!frame->editor()->canEdit())
|
|
|