From c907cc61ae94982368a2394ea2e3f328a8d76e70 Mon Sep 17 00:00:00 2001 From: "yusukes@google.com" Date: Thu, 18 Aug 2011 13:36:43 +0000 Subject: Add Unicode support to ibus_input_method.cc. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We should copy |character_| and |unmodified_| character values to the PengingKeyEvent object so that we can type Unicode characters (>= 0x80) even when ibus-daemon is running. BUG=None (internal bug) TEST=manually done: login, switch to the French virtual keyboard, press Shift, press More, then press √, ÷, etc. Review URL: http://codereview.chromium.org/7599022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97303 0039d316-1c4b-4281-b951-d872f2087c98 --- views/ime/input_method_ibus.cc | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'views') diff --git a/views/ime/input_method_ibus.cc b/views/ime/input_method_ibus.cc index f2893bf..bb49440 100644 --- a/views/ime/input_method_ibus.cc +++ b/views/ime/input_method_ibus.cc @@ -196,6 +196,8 @@ class InputMethodIBus::PendingKeyEvent { ui::EventType type_; int flags_; ui::KeyboardCode key_code_; + uint16 character_; + uint16 unmodified_character_; guint32 ibus_keyval_; @@ -215,6 +217,8 @@ InputMethodIBus::PendingKeyEvent::PendingKeyEvent(InputMethodIBus* input_method, type_(key.type()), flags_(key.flags()), key_code_(key.key_code()), + character_(key.GetCharacter()), + unmodified_character_(key.GetUnmodifiedCharacter()), ibus_keyval_(ibus_keyval) { DCHECK(input_method_); @@ -244,6 +248,10 @@ void InputMethodIBus::PendingKeyEvent::ProcessPostIME(bool handled) { } #endif KeyEvent key(type_, key_code_, flags_); + if (key_code_ == ui::VKEY_UNKNOWN) { + key.set_character(character_); + key.set_unmodified_character(unmodified_character_); + } input_method_->ProcessKeyEventPostIME(key, ibus_keyval_, handled); } -- cgit v1.1