Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: chrome/browser/chromeos/input_method/input_method_engine.cc

Issue 404203003: Distinguish between keystroke and character events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: IsCharFromNative() for Mac build Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 if (code == "Escape") 76 if (code == "Escape")
77 return "Esc"; 77 return "Esc";
78 if (code == "Backspace" || code == "Tab" || 78 if (code == "Backspace" || code == "Tab" ||
79 code == "Enter" || code == "CapsLock") 79 code == "Enter" || code == "CapsLock")
80 return code; 80 return code;
81 uint16 ch = 0; 81 uint16 ch = 0;
82 // Ctrl+? cases, gets key value for Ctrl is not down. 82 // Ctrl+? cases, gets key value for Ctrl is not down.
83 if (event.flags() & ui::EF_CONTROL_DOWN) { 83 if (event.flags() & ui::EF_CONTROL_DOWN) {
84 ui::KeyEvent event_no_ctrl(event.type(), 84 ui::KeyEvent event_no_ctrl(event.type(),
85 event.key_code(), 85 event.key_code(),
86 event.flags() ^ ui::EF_CONTROL_DOWN, 86 event.flags() ^ ui::EF_CONTROL_DOWN);
87 false);
88 ch = event_no_ctrl.GetCharacter(); 87 ch = event_no_ctrl.GetCharacter();
89 } else { 88 } else {
90 ch = event.GetCharacter(); 89 ch = event.GetCharacter();
91 } 90 }
92 return base::UTF16ToUTF8(base::string16(1, ch)); 91 return base::UTF16ToUTF8(base::string16(1, ch));
93 } 92 }
94 93
95 void GetExtensionKeyboardEventFromKeyEvent( 94 void GetExtensionKeyboardEventFromKeyEvent(
96 const ui::KeyEvent& event, 95 const ui::KeyEvent& event,
97 InputMethodEngine::KeyboardEvent* ext_event) { 96 InputMethodEngine::KeyboardEvent* ext_event) {
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 309
311 int flags = ui::EF_NONE; 310 int flags = ui::EF_NONE;
312 flags |= event.alt_key ? ui::EF_ALT_DOWN : ui::EF_NONE; 311 flags |= event.alt_key ? ui::EF_ALT_DOWN : ui::EF_NONE;
313 flags |= event.ctrl_key ? ui::EF_CONTROL_DOWN : ui::EF_NONE; 312 flags |= event.ctrl_key ? ui::EF_CONTROL_DOWN : ui::EF_NONE;
314 flags |= event.shift_key ? ui::EF_SHIFT_DOWN : ui::EF_NONE; 313 flags |= event.shift_key ? ui::EF_SHIFT_DOWN : ui::EF_NONE;
315 flags |= event.caps_lock ? ui::EF_CAPS_LOCK_DOWN : ui::EF_NONE; 314 flags |= event.caps_lock ? ui::EF_CAPS_LOCK_DOWN : ui::EF_NONE;
316 315
317 ui::KeyEvent ui_event(type, 316 ui::KeyEvent ui_event(type,
318 key_code, 317 key_code,
319 event.code, 318 event.code,
320 flags, 319 flags);
321 false /* is_char */);
322 if (!event.key.empty()) 320 if (!event.key.empty())
323 ui_event.set_character(base::UTF8ToUTF16(event.key)[0]); 321 ui_event.set_character(base::UTF8ToUTF16(event.key)[0]);
324 base::AutoReset<const ui::KeyEvent*> reset_sent_key(&sent_key_event_, 322 base::AutoReset<const ui::KeyEvent*> reset_sent_key(&sent_key_event_,
325 &ui_event); 323 &ui_event);
326 ui::EventDispatchDetails details = dispatcher->OnEventFromSource(&ui_event); 324 ui::EventDispatchDetails details = dispatcher->OnEventFromSource(&ui_event);
327 if (details.dispatcher_destroyed) 325 if (details.dispatcher_destroyed)
328 break; 326 break;
329 } 327 }
330 return true; 328 return true;
331 } 329 }
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 // TODO(nona): Implement it. 669 // TODO(nona): Implement it.
672 break; 670 break;
673 } 671 }
674 } 672 }
675 } 673 }
676 674
677 // TODO(nona): Support item.children. 675 // TODO(nona): Support item.children.
678 } 676 }
679 677
680 } // namespace chromeos 678 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698