Hello.
After updating the cef framework from version 3865 to version 4103.
When a character input event is generated using the method CefBrowserHost::SendKeyEvent.
Instead of letters (a,b,c), numbers appear in the input field.
cefsimple, lubuntu linux 19 OS x64.
The code below displays '123123123' in the Google input field instead of the 'abcabcabc'.
- Code: Select all
void SimpleHandler::OnLoadingStateChange(CefRefPtr<CefBrowser> browser,
bool isLoading,
bool canGoBack,
bool canGoForward) {
LOG(INFO) << "SimpleApp::OnLoadingStateChange";
LOG(INFO) << isLoading;
if (false == isLoading) {
CefKeyEvent keyEvent;
char16 chr = 'a';
char16 chr2 = 'b';
char16 chr3 = 'c';
keyEvent.type = KEYEVENT_CHAR;
keyEvent.modifiers = 0;
keyEvent.unmodified_character = chr;
keyEvent.is_system_key = false;
keyEvent.focus_on_editable_field = true;
CefRefPtr<CefBrowserHost> browserHost = browser->GetHost();
for (int i = 0; i < 9; ++i) {
if (0 == (i % 3)) {
keyEvent.character = chr;
int lKeyCode = static_cast<int>(keyEvent.character);
keyEvent.windows_key_code = lKeyCode;
keyEvent.native_key_code = lKeyCode;
}
else if (1 == (i % 3)) {
keyEvent.character = chr2;
int lKeyCode = static_cast<int>(keyEvent.character);
keyEvent.windows_key_code = lKeyCode;
keyEvent.native_key_code = lKeyCode;
}
else if (2 == (i % 3)) {
keyEvent.character = chr3;
int lKeyCode = static_cast<int>(keyEvent.character);
keyEvent.windows_key_code = lKeyCode;
keyEvent.native_key_code = lKeyCode;
}
browserHost->SendKeyEvent(keyEvent);
}
}
}