| Index: ui/base/ime/input_method_auralinux.cc
|
| diff --git a/ui/base/ime/input_method_auralinux.cc b/ui/base/ime/input_method_auralinux.cc
|
| index 08ec50bdc22f902b1eefda6d94da01f84343ec82..97ce8ea79b554a36abd06fcd7334d6028b734e52 100644
|
| --- a/ui/base/ime/input_method_auralinux.cc
|
| +++ b/ui/base/ime/input_method_auralinux.cc
|
| @@ -104,16 +104,31 @@ void InputMethodAuraLinux::DispatchKeyEvent(ui::KeyEvent* event) {
|
| if (text_input_type_ != TEXT_INPUT_TYPE_PASSWORD &&
|
| GetEngine() && GetEngine()->IsInterestedInKeyEvent() &&
|
| (!filtered || NeedInsertChar())) {
|
| - ui::IMEEngineHandlerInterface::KeyEventDoneCallback callback =
|
| - base::Bind(&InputMethodAuraLinux::ProcessKeyEventDone,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - base::Owned(new ui::KeyEvent(*event)), filtered);
|
| + ui::IMEEngineHandlerInterface::KeyEventDoneCallback callback = base::Bind(
|
| + &InputMethodAuraLinux::ProcessKeyEventByEngineDone,
|
| + weak_ptr_factory_.GetWeakPtr(), base::Owned(new ui::KeyEvent(*event)),
|
| + filtered, composition_changed_,
|
| + base::Owned(new ui::CompositionText(composition_)),
|
| + base::Owned(new base::string16(result_text_)));
|
| GetEngine()->ProcessKeyEvent(*event, callback);
|
| } else {
|
| ProcessKeyEventDone(event, filtered, false);
|
| }
|
| }
|
|
|
| +void InputMethodAuraLinux::ProcessKeyEventByEngineDone(
|
| + ui::KeyEvent* event,
|
| + bool filtered,
|
| + bool composition_changed,
|
| + ui::CompositionText* composition,
|
| + base::string16* result_text,
|
| + bool is_handled) {
|
| + composition_changed_ = composition_changed;
|
| + composition_.CopyFrom(*composition);
|
| + result_text_ = *result_text;
|
| + ProcessKeyEventDone(event, filtered, is_handled);
|
| +}
|
| +
|
| void InputMethodAuraLinux::ProcessKeyEventDone(ui::KeyEvent* event,
|
| bool filtered,
|
| bool is_handled) {
|
|
|