Character keys do work fine (abc..), but special keys like tab/enter/pageup/pagedown do not work.
Tab and Enter do not work in editable fields. Pageup and pagedown don't work on pages.
I'm doing it the same as in the cefclient_osr_widget_gtk.cpp in the glarea_key_event() function:
- Code: Select all
key_event.native_key_code = event->keyval;
key_event.modifiers = get_cef_state_modifiers(event->state);
if (event->type == GDK_KEY_PRESS) {
key_event.type = KEYEVENT_RAWKEYDOWN;
host->SendKeyEvent(key_event);
} else {
// Need to send both KEYUP and CHAR events.
key_event.type = KEYEVENT_KEYUP;
host->SendKeyEvent(key_event);
key_event.type = KEYEVENT_CHAR;
host->SendKeyEvent(key_event);
}
What am I missing?
This is what is sent when pressing the Tab key on an editable field (google.com):
- Code: Select all
keydown keyEvent: {'native_key_code': 9, 'modifiers': 0, 'type': 0}
keyup keyEvent: {'native_key_code': 9, 'modifiers': 0, 'type': 2}
char keyEvent: {'native_key_code': 9, 'modifiers': 0, 'type': 3}
Using CEF 3, branch 1453, revision 1352, on Ubuntu 12.04 64-bit.
Thanks,
Czarek