diff options
Diffstat (limited to 'webkit/tools/test_shell/webwidget_host_gtk.cc')
-rw-r--r-- | webkit/tools/test_shell/webwidget_host_gtk.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/webkit/tools/test_shell/webwidget_host_gtk.cc b/webkit/tools/test_shell/webwidget_host_gtk.cc index 57d88d8..c3b5cb6 100644 --- a/webkit/tools/test_shell/webwidget_host_gtk.cc +++ b/webkit/tools/test_shell/webwidget_host_gtk.cc @@ -148,6 +148,16 @@ class WebWidgetHostGtkWidget { WebKeyboardEvent wke(event); host->webwidget()->HandleInputEvent(&wke); + // The WebKeyboardEvent model, when holding down a key, is: + // KEY_DOWN, CHAR, (repeated CHAR as key repeats,) KEY_UP + // The GDK model for the same sequence is just: + // KEY_PRESS, (repeated KEY_PRESS as key repeats,) KEY_RELEASE + // So we must simulate a CHAR event for every key press. + if (event->type == GDK_KEY_PRESS) { + wke.type = WebKeyboardEvent::CHAR; + host->webwidget()->HandleInputEvent(&wke); + } + return FALSE; } |