OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/input_method/input_method_engine.h" | 5 #include "chrome/browser/chromeos/input_method/input_method_engine.h" |
6 | 6 |
7 #undef FocusIn | 7 #undef FocusIn |
8 #undef FocusOut | 8 #undef FocusOut |
9 #undef RootWindow | 9 #undef RootWindow |
10 #include <map> | 10 #include <map> |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
313 ui::KeyboardCode key_code = static_cast<ui::KeyboardCode>(event.key_code); | 313 ui::KeyboardCode key_code = static_cast<ui::KeyboardCode>(event.key_code); |
314 if (key_code == ui::VKEY_UNKNOWN) | 314 if (key_code == ui::VKEY_UNKNOWN) |
315 key_code = ui::DomKeycodeToKeyboardCode(event.code); | 315 key_code = ui::DomKeycodeToKeyboardCode(event.code); |
316 | 316 |
317 int flags = ui::EF_NONE; | 317 int flags = ui::EF_NONE; |
318 flags |= event.alt_key ? ui::EF_ALT_DOWN : ui::EF_NONE; | 318 flags |= event.alt_key ? ui::EF_ALT_DOWN : ui::EF_NONE; |
319 flags |= event.ctrl_key ? ui::EF_CONTROL_DOWN : ui::EF_NONE; | 319 flags |= event.ctrl_key ? ui::EF_CONTROL_DOWN : ui::EF_NONE; |
320 flags |= event.shift_key ? ui::EF_SHIFT_DOWN : ui::EF_NONE; | 320 flags |= event.shift_key ? ui::EF_SHIFT_DOWN : ui::EF_NONE; |
321 flags |= event.caps_lock ? ui::EF_CAPS_LOCK_DOWN : ui::EF_NONE; | 321 flags |= event.caps_lock ? ui::EF_CAPS_LOCK_DOWN : ui::EF_NONE; |
322 | 322 |
323 ui::KeyEvent ui_event( | 323 base::char16 ch = 0; |
324 type, | |
325 key_code, | |
326 ui::KeycodeConverter::CodeStringToDomCode(event.code.c_str()), | |
327 flags); | |
328 // 4-bytes UTF-8 string is at least 2-characters UTF-16 string. | 324 // 4-bytes UTF-8 string is at least 2-characters UTF-16 string. |
329 // And Key char can only be single UTF-16 character. | 325 // And Key char can only be single UTF-16 character. |
330 if (!event.key.empty() && event.key.size() < 4) { | 326 if (!event.key.empty() && event.key.size() < 4) { |
331 base::string16 key_char = base::UTF8ToUTF16(event.key); | 327 base::string16 key_char = base::UTF8ToUTF16(event.key); |
332 if (key_char.size() == 1) | 328 if (key_char.size() == 1) |
333 ui_event.set_character(key_char[0]); | 329 ch = key_char[0]; |
334 } | 330 } |
331 ui::KeyEvent ui_event( | |
332 type, | |
333 key_code, | |
334 ui::KeycodeConverter::CodeStringToDomCode(event.code.c_str()), | |
335 flags, | |
336 ui::KeycodeConverter::KeyStringToDomKey(event.key.c_str()), | |
337 ch); | |
kpschoedel
2014/12/19 16:08:51
I think eventually we want something like:
ui
Shu Chen
2014/12/20 11:38:11
ACK. Thanks & looking forward to the dom key is fu
| |
335 base::AutoReset<const ui::KeyEvent*> reset_sent_key(&sent_key_event_, | 338 base::AutoReset<const ui::KeyEvent*> reset_sent_key(&sent_key_event_, |
336 &ui_event); | 339 &ui_event); |
337 ui::EventDispatchDetails details = dispatcher->OnEventFromSource(&ui_event); | 340 ui::EventDispatchDetails details = dispatcher->OnEventFromSource(&ui_event); |
338 if (details.dispatcher_destroyed) | 341 if (details.dispatcher_destroyed) |
339 break; | 342 break; |
340 } | 343 } |
341 | 344 |
342 return true; | 345 return true; |
343 } | 346 } |
344 | 347 |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
700 // TODO(nona): Implement it. | 703 // TODO(nona): Implement it. |
701 break; | 704 break; |
702 } | 705 } |
703 } | 706 } |
704 } | 707 } |
705 | 708 |
706 // TODO(nona): Support item.children. | 709 // TODO(nona): Support item.children. |
707 } | 710 } |
708 | 711 |
709 } // namespace chromeos | 712 } // namespace chromeos |
OLD | NEW |