From: Ji-hoon Lee Date: Wed, 4 Jul 2018 00:52:41 +0000 (+0900) Subject: Make sure key events are processed before subsequent commit messages X-Git-Tag: submit/tizen/20180713.070818~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6f35bafe156b3ff701db91275cc890242582be73;p=platform%2Fcore%2Fuifw%2Flibscl-core.git Make sure key events are processed before subsequent commit messages Change-Id: I4c4f5d663d26439b5b342b00043292696a7778d3 (cherry picked from commit a51d21ce5f14df49fac89ff16ccf51dead2f3697) --- diff --git a/src/legacy_support/websocket.cpp b/src/legacy_support/websocket.cpp index ada9e47..4bc9f87 100644 --- a/src/legacy_support/websocket.cpp +++ b/src/legacy_support/websocket.cpp @@ -1111,6 +1111,7 @@ bool CWebHelperAgentWebSocket::process_recved_messages_until_reply_found(std::st void CWebHelperAgentWebSocket::handle_recved_message(ISE_MESSAGE &message) { + static bool _key_event_processing = false; if (message.command.compare(ISE_MESSAGE_COMMAND_STRINGS[ISE_MESSAGE_COMMAND_LOG]) == 0) { std::string str = ""; for (unsigned int loop = 0;loop < message.values.size();loop++) { @@ -1121,8 +1122,6 @@ void CWebHelperAgentWebSocket::handle_recved_message(ISE_MESSAGE &message) } log(str.c_str()); } else if (message.command.compare(ISE_MESSAGE_COMMAND_STRINGS[ISE_MESSAGE_COMMAND_COMMIT_STRING]) == 0) { - send_key_event(0xff6b, 0); // Temporarily reset keyboard engine - std::string str = ""; for (unsigned int loop = 0;loop < message.values.size();loop++) { str += message.values.at(loop).c_str(); @@ -1130,6 +1129,13 @@ void CWebHelperAgentWebSocket::handle_recved_message(ISE_MESSAGE &message) str += " "; } } + if (_key_event_processing) { + struct timeval tv; + tv.tv_sec = 0; + tv.tv_usec = 50000; + select(0, NULL, NULL, NULL, &tv); + _key_event_processing = false; + } commit_string(str.c_str()); } else if (message.command.compare(ISE_MESSAGE_COMMAND_STRINGS[ISE_MESSAGE_COMMAND_UPDATE_PREEDIT_STRING]) == 0) { std::string str = ""; @@ -1142,7 +1148,8 @@ void CWebHelperAgentWebSocket::handle_recved_message(ISE_MESSAGE &message) update_preedit_string(str.c_str()); } else if (message.command.compare(ISE_MESSAGE_COMMAND_STRINGS[ISE_MESSAGE_COMMAND_SEND_KEY_EVENT]) == 0) { if (message.values.size() == 1) { - send_key_event(atoi(message.values.at(0).c_str()), 0); + forward_key_event(atoi(message.values.at(0).c_str())); + _key_event_processing = true; } } else if (message.command.compare(ISE_MESSAGE_COMMAND_STRINGS[ISE_MESSAGE_COMMAND_SET_KEYBOARD_SIZES]) == 0) { LOGD("ISE_MESSAGE_COMMAND_SET_KEYBOARD_SIZES");