key.code = p->value;
} else if (it->length () >= 6 && (*it)[0] == '0' && ((*it)[1] == 'x' || (*it)[1] == 'X')){
key.code = strtol (it->c_str () + 2, NULL, 16);
+ } else if (it->length () >= 5 && ((*it)[0] == 'u' || (*it)[0] == 'U')){
+ key.code = strtol (it->c_str () + 1, NULL, 16);
+ key.code |= 0x1000000;
} else if (p && p->name && strcmp (p->name, "VoidSymbol") == 0) {
key.code = SCIM_KEY_VoidSymbol;
}
return;
}
- bool ret = false;
-
-#if ENABLE_GRAB_KEYBOARD
- if (!m_impl->si.null ()) {
-#else
- if (key.code <= 0x7F ||
- (key.code >= SCIM_KEY_BackSpace && key.code <= SCIM_KEY_Delete) ||
- (key.code >= SCIM_KEY_Home && key.code <= SCIM_KEY_Hyper_R)) {
- // ascii code and function keys
- ret = false;
- } else {
- ret = true;
- }
-
- if (ret && (!m_impl->si.null ())) {
-#endif
- ret = m_impl->si->process_key_event (key);
- LOGD ("imengine(%s) process key %d return %d", m_impl->si->get_factory_uuid().c_str(), key.code, ret);
- }
-
- if (ret == false && m_impl->socket_active.is_connected ()) {
+ if (m_impl->socket_active.is_connected ()) {
m_impl->send.clear ();
m_impl->send.put_command (SCIM_TRANS_CMD_REQUEST);
m_impl->send.put_data (m_impl->magic_active);